Magento – Magento 1.9 How to set session and clear session in login and logout

custom-optionsmagento-1.9session

I would like to set session during login action and clear session during logout action.

By googling I understand the following code will help setting the session and clearing the session.

Mage::getSingleton('customer/session')->setMyValue($myValue);
Mage::getSingleton('customer/session')->unsMyValue();

But I don't know what are the files and where exactly I need to include these code to set session during login and clear session during logout.

Please advice.

Best Answer

Use event observer to set your custom session value (Refer this tutorial for Event observers)

For customer login

use

<frontend>
    <events>
        <customer_logout>
            <observers>
                <your_unqiue_event_name>
                    <class>Namespace_Module_Model_Observer</class>
                    <method>logout</method>
                    <type>singleton</type>
                </your_unqiue_event_name>
            </observers>
        </customer_logout>

        <customer_login>
            <observers>
                <your_unqiue_event_name1>
                    <class>Namespace_Module_Model_Observer</class>
                    <method>login</method>
                    <type>singleton</type>
                </your_unqiue_event_name1>
            </observers>
        </customer_login>
    </events>
</frontend>

Then set/unset your custom session value

in

public function login()
{
     ..... 
     Mage::getSingleton('customer/session')->setMyValue($myValue);
     .....
}

public function logout()
{
    .....
    Mage::getSingleton('customer/session')->unsMyValue();
    .....
}