FOSUserBundle并记住我 [英] FOSUserBundle and remember me

查看:97
本文介绍了FOSUserBundle并记住我的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Symfony2中使用FOSUserBundle进行身份验证.除了记住我"以外,其他一切都正常.我的security.yml看起来像这样:

I'm using a FOSUserBundle for authentication in Symfony2. Everything works fine except "remember me". My security.yml looks like this:

security:
providers:
    fos_userbundle:
        id: fos_user.user_manager

encoders:
    'FOS\UserBundle\Model\UserInterface': sha512

firewalls:
    main:
        pattern: ^/
        form_login:
            provider: fos_userbundle
        logout:       true
        anonymous:    true
        remember_me:
            key:      aSecretKey
            lifetime: 3600
            path:     /
            domain:   ~

access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/admin, role: ROLE_ADMIN }

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: ROLE_ADMIN

有人知道如何解决这个问题.

Does anybody know how to solve this.

推荐答案

这对我也不起作用,因为我使用了2个用户提供程序:FOSUserBundle和FosFacebook.

This was not working for me neither because i used 2 user providers: FOSUserBundle and FosFacebook.

实际上是在设置cookie,但是在TokenBasedRememberMeServices的processAutoLoginCookie中,我看到使用了错误的提供程序.

The cookie was actually being set, but in TokenBasedRememberMeServices, processAutoLoginCookie i saw that the wrong provider was being used.

要修复此问题,我必须在我想使用的提供者的Remember_me部分的security.yml中指定.

To fix it i had to specify in security.yml in remember_me section the provider i wanted to use.

firewalls:
    main:
        ...
        remember_me:
            secret:      "%secret%"
            lifetime: 2592000
            path:     /
            domain:   ~
            user_provider: fos_userbundle

也许这对其他人也有帮助.

Maybe this helps somebody else too.

更新:我已经修改了响应,因为在新版本的Symfony中,Remember_me下的密钥"现在称为秘密".

Update: I've modified the response since in newer versions of Symfony, the "key" under remember_me is now called "secret".

这篇关于FOSUserBundle并记住我的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆