Magento 2, You can log out customer programmatically by getting current customer session using the Model file, Magento\Customer\Model\Session
You need to call logout() function from above class dependency.
Call below dependency in __construct function,
<?php public function __construct( \Magento\Framework\App\Action\Context $context, \Magento\Customer\Model\Session $customerSession ) { $this->redirect = $context->getRedirect(); $this->customerSession = $customerSession; } public function customerLogout() { $customerId = $this->customerSession->getId(); if($customerId) { $this->customerSession->logout() ->setBeforeAuthUrl($this->redirect->getRefererUrl()) ->setLastCustomerId($customerId); return "Customer logout successfully"; } else { return "Customer is not login"; } }
Call customerLogout() function from above file to programmatically log out a customer from the current session.
It’s bad practice used session class in __construct.
It’s bad practice used session class in __construct.
It will be used using DI with Proxy injection to session class, I am aware about it but I have just show how to logout using Session class.
Does magento 2.2.0 provide API for sign out? If not then how can I create it. I want to use it in my app
Thanks