下面的代码将强制登录用户自动,它工作良好。我想添加记住我的功能。所以当我们强制登录用户,然后也添加,记住我,所以下次他自动登录到网站。
// Auto Authenticate User
$firewall = 'user_firewall';
$token = new UsernamePasswordToken($user, null, $firewall, $user->getRoles());
$this->get('security.token_storage')->setToken($token);
$session = $this->get('session');
$session->set('_security_'.$firewall, serialize($token));
$session->save();发布于 2016-07-21 10:26:40
使用RemeberMeToken,不需要在会话中手动设置它,只需触发interactive_login事件:
// Auto Authenticate User
$firewall = 'user_firewall';
$key = $this->getParameter('secret'); //from parameters.yml
$token = new RememberMeToken($user, $firewall, $key);
$this->get('security.token_storage')->setToken($token);
$this->get('event_dispatcher')->dispatch(
SecurityEvents::INTERACTIVE_LOGIN,
new InteractiveLoginEvent($request, $token)
);编辑:将此添加到您的security.yml:
yourProviderKey: # oauth i guess
remember_me: true
remember_me:
secret: '%secret%'
lifetime: 604800 # 1 week in seconds
path: /
#always_remember_me: true # optional如果这不起作用,请尝试将?_remember_me=1添加到check_path的末尾。
https://stackoverflow.com/questions/38500609
复制相似问题