Magento customer login programmatically

后端 未结 2 1082
天命终不由人
天命终不由人 2020-12-12 01:59

I have the code:

function loginUser( $email, $password )
{
    /** @var $session Mage_Customer_Model_Session */
    $session = Mage::getSingleton( \'customer         


        
相关标签:
2条回答
  • 2020-12-12 02:42
    <?php
    function loginUser( $email, $password )
        require_once ("app/Mage.php");
        umask(0);
        ob_start();
        session_start();
        Mage::app('default');
        Mage::getSingleton("core/session", array("name" => "frontend"));
    
        $websiteId = Mage::app()->getWebsite()->getId();
        $store = Mage::app()->getStore();
        $customer = Mage::getModel("customer/customer");
        $customer->website_id = $websiteId;
        $customer->setStore($store);
        try {
            $customer->loadByEmail($email);
            $session = Mage::getSingleton('customer/session')->setCustomerAsLoggedIn($customer);
            $session->login($email, $password);
        }catch(Exception $e){
    
        }
    
    
      } 
    ?>
    
    0 讨论(0)
  • 2020-12-12 02:53

    Martin,please try below code...

     require_once "app/Mage.php";
        Mage::app('default');
        umask(0);
        Mage::getSingleton('core/session', array('name' => 'frontend'));
    
        $session = Mage::getSingleton('customer/session');
    
    $session->start();
    
                if (!empty($email) && !empty($password )) {
                        try {
                            $session->login($email, $password );
                            if ($session->getCustomer()->getIsJustConfirmed()) {
                                $this->_welcomeCustomer($session->getCustomer(), true);
                            }
                        } catch (Mage_Core_Exception $e) {
                            switch ($e->getCode()) {
                                case Mage_Customer_Model_Customer::EXCEPTION_EMAIL_NOT_CONFIRMED:
                                    $value = Mage::helper('customer')->getEmailConfirmationUrl($email);
                                    $message = Mage::helper('customer')->__('This account is not confirmed. <a href="%s">Click here</a> to resend confirmation email.', $value);
                                    break;
                                case Mage_Customer_Model_Customer::EXCEPTION_INVALID_EMAIL_OR_PASSWORD:
                                    $message = $e->getMessage();
                                    break;
                                default:
                                    $message = $e->getMessage();
                            }
                            $session->addError($message);
                            $session->setUsername($email);
                        } catch (Exception $e) {
                            // Mage::logException($e); // PA DSS violation: this exception log can disclose customer password
                        }
                    } else {
                        $session->addError('Login and password are required.');
    
    
       }
    

    With Out password login

    try{
        $customer = Mage::getModel("customer/customer");
        $customer->setWebsiteId(Mage::app()->getWebsite()->getId());
        $customer->loadByEmail($email); //load customer by email i 
            /* if customer has ,then login */
            if($customer->getId()>0){
            $userSession = Mage::getSingleton('customer/session');
            $userSession->setCustomer($customer);
            Mage::dispatchEvent('customer_login', array('customer'=>$customer));
    
            }else{
                echo "Error";
    
            }
        }catch(Exception $e)
        {
        print_r($e->getMessage());
        }
    
    0 讨论(0)
提交回复
热议问题