Customer login programmatically in magento 2

customer login programmatically in magento 2

Login programmatically in Magento 2 .

You required only Customer id or Customer email to logged-in customer programmatically without going to the login page.

Customer id or customer email require to load customer.

You need to first get Customer object using CustomerFactory .

Use Customer Object to customer session with setCustomerDataAsLoggedIn function.

This method also known as customer loggen in forcefully without having customer password./

Write below code into PHTML file or other also do this by inject class(di method)

    $objectManager = \Magento\Framework\App\ObjectManager::getInstance();

    $customerFactory = $objectManager->get('\Magento\Customer\Model\CustomerFactory'); 
    $customer = $customerFactory->create();
    //$customer->loadByEmail('[email protected]');// load customer by email address   
    $customer->load('1');// load customer by using ID

    $customerSession = $objectManager->get('Magento\Customer\Model\Session');

    if($customerSession->isLoggedIn()) {
        echo   $customerSession->getCustomer()->getId();  // get Customer Id
        echo   $customerSession->getCustomer()->getName();  // get  Full Name
        echo   $customerSession->getCustomer()->getEmail(); // get Email Name
        echo   $customerSession->getCustomer()->getGroupId();  // get Customer Group Id

Using dependency injection to inject the following classes in your constructor

protected $_customer;
protected $_customerSession;

public function _construct(...
    \Magento\Customer\Model\Customer $customer,
    \Magento\Customer\Model\Session $customerSession)
{ ... $this->_customer = $customer; $this->_customerSession = $customerSession; ... }

Then in your code you can do:

$customer = $this->_customer->loadByEmail("[email protected]"); 
 echo   $customerSession->getCustomer()->getId();

Admin login programmatically in magento 2

Like us on Facebook and Linkedin for more updates.

Leave a Reply

Your email address will not be published. Required fields are marked *

Back To Top