Аутентификация между модулями в Zend Framework - PullRequest
0 голосов
/ 26 февраля 2019

В настоящее время я использую ZF3 с двумя модулями.

Первый модуль обрабатывает аутентификацию пользователей.
Второй модуль должен использовать информацию о статусе аутентификации пользователей.

Подробно: Второй модуль должен проверять, вошел ли пользователь в систему.
В зависимости от этого состояния он должен разрешать маршрутизацию на определенные контроллеры.

Например, в шаблоне первого модуля я могу использовать: $this->auth()->isLoggedIn()
Но - конечно - я не могу использовать auth () во втором шаблоне модулей.

Я все ещеизучая ZF, поэтому я не знаю, как сообщить второму модулю о состоянии аутентификации.Я думаю, это как-то связано с ZFs ServiceManager или PluginManager, но я не уверен.

Любая помощь будет признательна ...

1 Ответ

0 голосов
/ 27 февраля 2019

Благодаря некоторым объяснениям по https://www.tutorialspoint.com/zend_framework/zend_framework_service_manager.htm я решил это!

В FooControllerFactory :: __ invoke я использовал контейнер для поиска AuthManager

$authManager = $container->get(\Vendor\Auth\Manager::class);

Затем я вернулсяэто:

return new FooController($entityManager, $FooManager, $authManager);

(entityManager из доктрины, FooManager является менеджером этой модели)

В FooController.php я добавил authManager в конструктор

$this->authManager = $authManager;

Теперь я могу получить, например, имя пользователя в любом FooAction!:)

$this->authManager->getIdentity()->username

(замените "username" на правильное имя строки user_id)

...