首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FOSFacebookBundle打断了FOSUserBundle的“记住我”

FOSFacebookBundle打断了FOSUserBundle的“记住我”
EN

Stack Overflow用户
提问于 2012-08-28 15:15:31
回答 1查看 831关注 0票数 2

问题:

我们一直在使用FOSUserBundle for Symfony2,所有的功能都很好,包括“记住我”。

我们最近引入了FOSFacebookBundle。从那时起,“记住我”的“正常”登录就被打破了。

例如,

当我们只使用FosUSer时,如果用户通过登录表单登录,并停留,例如5小时不活动,单击任何链接后,所有都继续工作,与用户登录和标识。

当我们激活FosFacebook时,同一个用户也会通过登录表单(而不是从facebook)登录,并保持一段时间不活动。单击任何链接后,他将被重定向到登录表单,并且在再次输入其密码后,将再次重定向到目标URL。

如果我们从配置中禁用FosFacebook,则FosUser的“记住我”再次正确工作。

问题:

FosFacebook打破了FosUser的“自然”功能,不使用FB的用户还记得我吗?

如果工作正常..。有人能看到我们在配置文件中是否犯了错误吗?

Config文件:

config.yml

代码语言:javascript
复制
# FOS User
fos_user:
    db_driver: %database_method% # other valid values are 'mongodb', 'couchdb'
    firewall_name: main
    user_class: Common\ODMBundle\Document\User
    from_email:
        address:        %fos_email_address%
        sender_name:    %fos_sender_name%
    profile:
        form:
            type:               fos_user_profile
            handler:            fos_user.profile.form.handler.default
            name:               fos_user_profile_form
            validation_groups:  [Profile]
    change_password:
        form:
            type:               fos_user_change_password
            handler:            fos_user.change_password.form.handler.default
            name:               fos_user_change_password_form
            validation_groups:  [ChangePassword]
    registration:
        confirmation:
            enabled:    true
            template:   FOSUserBundle:Registration:email.txt.twig
        form:
            type:               fos_user_registration
            handler:            fos_user.registration.form.handler.default
            name:               fos_user_registration_form
            validation_groups:  [Registration]
    resetting:
        token_ttl: 600
        email:
            template:   FOSUserBundle:Resetting:email.txt.twig
        form:
            type:               fos_user_resetting
            handler:            fos_user.resetting.form.handler.default
            name:               fos_user_resetting_form
            validation_groups:  [ResetPassword]

# FOS facebook
fos_facebook:
    file:   %kernel.root_dir%/../vendor/facebook/src/base_facebook.php
    alias:  facebook
    app_id: xxxxxxxxxxxxxxx
    secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    cookie: true
    permissions: [email, user_birthday]

security.yml

代码语言:javascript
复制
security:
    providers:
        fos_userbundle:
            id: fos_user.user_manager
        my_fos_facebook_provider:
            id: my.facebook.user

    factories:
          - "%kernel.root_dir%/../vendor/bundles/FOS/FacebookBundle/Resources/config/security_factories.xml"

    firewalls:
        main:
            pattern: ^/
            fos_facebook:
                check_path: /login_checkFB
                default_target_path: /user/
                provider: my_fos_facebook_provider
            form_login:
                provider: fos_userbundle
                default_target_path: /user/
            logout:       true
            anonymous:    true
            switch_user:  true
            remember_me:
                key:      aSecretKey
                lifetime: 604800
                path:     /
                domain:   ~

    access_control:
        #- { path: ^/.*$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/private/, role: ROLE_USER }
        - { path: ^/user/, role: ROLE_USER }
        - { path: ^/admin/, role: ROLE_ADMIN }

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
EN

回答 1

Stack Overflow用户

发布于 2013-01-03 13:35:52

添加facebooklogin后,您记得我就会开始使用Facebookprovider来检查日志增量。您可以将一个user_provider添加到“记住我”配置中,如下所示:

代码语言:javascript
复制
remember_me:
    key:      aSecretKey
    lifetime: 604800
    path:     /
    domain:   ~
    user_provider: fos_userbundle

添加这个将解决您的问题。

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

https://stackoverflow.com/questions/12162394

复制
相关文章

相似问题

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