Magento 2, как программно войти в систему в определенном магазине


Как я могу программно войти в систему клиента в определенном магазине в Magento 2?
Я пытался переопределить метод execute

Magento\Customer\Controller\Account\LoginPost

и сделал что-то вроде этого:

$this->storeManager->setCurrentStore("store_code");
$store = $this->storeRepository->getActiveStoreByCode("store_code");
$this->httpContext->setValue("store", "store_code", "default");
$this->storeCookieManager->setStoreCookie($store);

$customer = $this->customerAccountManagement->authenticate($login['username'], $login['password']);
$this->session->setCustomerDataAsLoggedIn($customer);

Но это не сработало.


person Eugene Nesterovich    schedule 01.10.2018    source источник


Ответы (1)


Это сложнее, как Вы думаете. Вы не можете установить хранилище файлов cookie или что-то в этом роде. В качестве обходного пути вы можете отправить учетные данные в определенный магазин с помощью запроса ajax, и, если ответ был успешным, вы можете перенаправить клиента в этот магазин.

person Pavel Lukuts    schedule 02.10.2018
comment
Спасибо, что дали направление. Я отправил почтовый запрос через ajax с электронной почтой клиента на свой контроллер, где я проверяю, какой клиент группы клиентов, и в соответствии с этим возвращаю желаемый магазин. А затем отправьте сообщение с учетными данными для входа в этот магазин. - person Eugene Nesterovich; 02.10.2018