首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony强制登录并记住我

Symfony强制登录并记住我
EN

Stack Overflow用户
提问于 2016-07-21 09:42:44
回答 1查看 1.6K关注 0票数 1

下面的代码将强制登录用户自动,它工作良好。我想添加记住我的功能。所以当我们强制登录用户,然后也添加,记住我,所以下次他自动登录到网站。

代码语言:javascript
复制
// 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();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-21 10:26:40

使用RemeberMeToken,不需要在会话中手动设置它,只需触发interactive_login事件:

代码语言:javascript
复制
// 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:

代码语言:javascript
复制
        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的末尾。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38500609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档