Я пользуюсь службой безопасности Silex/Symfony и пытаюсь реализовать автоматический вход в систему, когда конкретные параметры передаются в запросе запроса.Silex/Symfony программно логин
Я посмотрел в модули, а также поиск в Интернете для решения и всегда находил что-то вроде следующего:
$user = (new \Portal\UserProvider($app['databases']['read']))->loadUserByUsername($subscriber_id);
$token = new \Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken($user, $user->getPassword(), 'secured', $user->getRoles());
$app['security.token_storage']->setToken($token);
К сожалению, это не работает для моего приложения. Я не знаю, что случилось, но модуль безопасности продолжает перенаправлять меня/логин/как указано в процессе регистрации:
/**
* Registers the security firewall.
*/
private function registerSecurity()
{
$this->register(new \Silex\Provider\SecurityServiceProvider(), array(
'security.firewalls' => array(
'login' => array(
'pattern' => '^/(login/|terms|imprint|animation|error)',
),
'secured' => array(
'pattern' => '^/',
'form' => array(
'login_path' => '/login/',
'check_path' => '/login_check'
),
'logout' => array(
'logout_path' => '/logout'
),
'users' => $this->share(function() {
return new \Portal\UserProvider($this['databases']['read']);
}),
),
'unsecured' => array(
'anonymous' => true
),
),
'security.encoder.digest' => $this->share(function() {
return new \Symfony\Component\Security\Core\Encoder\MessageDigestPasswordEncoder('sha1', false, 1);
}),
'security.access_rules' => array(
array('^/login', 'ROLE_GUEST'),
),
'security.role_hierarchy' => $this->share(function() {
return array();
})
));
$this->boot();
}
Что я должен рассмотреть вопрос о
- перегрузочные
- порядок регистрации
SecurityServiceProvider
,SessionServiceProvider
- установка этого руководство лексема
?
может быть полезно? : [RememberMeServiceProvider добавляет аутентификацию «Remember-Me» в SecurityServiceProvider.] (Http://silex.sensiolabs.org/doc/providers/remember_me.html). –