Настройка службы аутентификации для ZfcUser

У меня есть пользовательская реализация 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. Есть идеи, чтобы решить эту проблему?

1

Решение

Ваш вариант использования неясен; обычно аутентификация адаптер это класс, который вы обычно настраиваете, а не фактическая служба аутентификации.

Тем не менее, вы можете переопределить службу по умолчанию своей собственной, если вы зарегистрируете службу с тем же именем, и модуль будет загружен после 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',
// ...
],
];
1

Другие решения

Аутентификационный адаптер просто срабатывает при выполнении действия входа в систему. Для обработки каждого запроса вы можете переопределить адаптер хранения, который позволяет проверять идентификацию в каждом запросе. В вашем файле конфигурации добавьте атрибут ‘ZfcUser \ Authentication \ Storage \ Db’, указывающий на ваш пользовательский класс хранения.

'service_manager' => array(
'invokables' => array(
'ZfcUser\Authentication\Storage\Db' => 'MyCustom\Authentication\Storage'),
...
0

По вопросам рекламы [email protected]