簡體   English   中英

Symfony2記住我不能使用fos用戶捆綁包

[英]Symfony2 remember me does not work with fos user bundle

我目前正在嘗試按照本指南http://symfony.com/doc/master/cookbook/security/remember_me.html在Symfony2項目中實現記住我的功能。 (我目前正在開發當地)

所以我在security.yml中的當前配置是:

        form_login:
            [...]
            remember_me: true

        remember_me:
            key:      secretKey
            lifetime: 31536000 # 365 days in seconds
            path:     /
            domain:   localhost # Defaults to the current domain from $_SERVER

        access_control:
            - { path: ^/admin/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/admin/login-check$, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/admin, role: [IS_AUTHENTICATED_REMEMBERED, ROLE_ADMIN] }

“REMEMBERME”cookie在登錄時創建,在關閉瀏覽器窗口后仍然存在。 當我再次打開瀏覽器時,cookie仍然存在,但當我嘗試訪問/ admin路徑時它會被刪除,然后我被重定向到登錄頁面。

真的無法理解......有沒有人遇到過這樣的問題?

謝謝

也許你的access_control有另一條匹配的規則

從這里: http//symfony.com/doc/current/book/security.html#securing-url-patterns-access-control

You can define as many URL patterns as you need - each is a regular expression. BUT, only one will be matched...

另請閱讀: http//symfony.com/doc/current/cookbook/security/access_control.html

基本解決方案

FosUserBundle 1.3.5(使用Symfony 2.6)中的“記住我”功能對我有用。 我只想在瀏覽器關閉后登錄我的頁面(參見用戶名,圖片......)。

'IS_AUTHENTICATED_FULLY''IS_AUTHENTICATED_REMEMBERED'之間存在差異。

在我的樹枝上:

{% if is_granted('IS_AUTHENTICATED_REMEMBERED') %}
...
{% endif %}

在我的security.yml中,我使用了Symfony Cookbook的默認配置(如何添加“記住我”登錄功能)。 否則它是普通的security.yml形式FossUserBundle Github文檔。

# app/config/security.yml
security:
    providers:
        fos_userbundle:
            id: fos_user.user_provider.username

    encoders:
        FOS\UserBundle\Model\UserInterface: sha512

    firewalls:
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                csrf_provider: form.csrf_provider
            logout:       true
            anonymous:    true
            remember_me:
                key:      "%secret%"
                lifetime: 31536000 # 365 days in seconds
                path:     /
                domain:   ~ # Defaults to the current domain from $_SERVER
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

    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

PS我必須清除:緩存讓它在IE11中運行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM