У меня есть пользовательская реализация AuthenticationService, которую я хотел бы использовать в модуле ZfcUser, но я могу установить этот класс в модуль. Реализация, кажется, исправлена.
поставщик \ ZF-Обще \ ZFC-пользователь \ module.php
'zfcuser_auth_service' => function ($sm) {
return new \Zend\Authentication\AuthenticationService(
$sm->get('ZfcUser\Authentication\Storage\Db'),
$sm->get('ZfcUser\Authentication\Adapter\AdapterChain')
);
}
Первоначальное требование состоит в том, чтобы сохранить уникальный активный сеанс для пользователя, который реализован в моем CustomAuthenticationService. Есть идеи, чтобы решить эту проблему?
Ваш вариант использования неясен; обычно аутентификация адаптер это класс, который вы обычно настраиваете, а не фактическая служба аутентификации.
Тем не менее, вы можете переопределить службу по умолчанию своей собственной, если вы зарегистрируете службу с тем же именем, и модуль будет загружен после ZfcUser
модуль.
Скажи, что твоя служба аутентификации у тебя Auth
пространство имен / модуль, с классом Auth\Service\CustomAuthenticationService
,
Зарегистрировать услугу в Auth\Module.php
(или в зависимости от типа фабрики module.config.php
этого модуля).
class Module
{
public function getServiceConfig()
{
return [
'aliases' => [
'MyAuthenticationService' => 'zfcuser_auth_service',
],
'factories' => [
'zfcuser_auth_service' => function($sm) {
return new \Auth\Service\CustomAuthenticationService(
$sm->get('ZfcUser\Authentication\Storage\Db'),
$sm->get('ZfcUser\Authentication\Adapter\AdapterChain')
);
},
],
];
}
}
Наконец, убедитесь, что модуль загружен после ZfcUser
в application.config.php
,
return [
'modules' => [
//...
'ZfcUser',
'Auth',
// ...
],
];
Аутентификационный адаптер просто срабатывает при выполнении действия входа в систему. Для обработки каждого запроса вы можете переопределить адаптер хранения, который позволяет проверять идентификацию в каждом запросе. В вашем файле конфигурации добавьте атрибут ‘ZfcUser \ Authentication \ Storage \ Db’, указывающий на ваш пользовательский класс хранения.
'service_manager' => array(
'invokables' => array(
'ZfcUser\Authentication\Storage\Db' => 'MyCustom\Authentication\Storage'),
...