【发布时间】:2013-03-06 11:22:17
【问题描述】:
有一个其他人似乎没有的奇怪问题。 我的 Symfony 2.1 应用程序无法使用“记住我”功能。
我尝试过本地部署并部署在服务器上,尝试过使用和不使用 FOS 用户包,但我似乎无法让它工作。
这是 composer 的基本设置,没有任何遗漏,安全工作正常,我可以登录、注销、创建新用户等。
它可以很好地创建会话 cookie(检查过),但我认为应该有第二个它没有创建的 cookie?
# app/config/security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login_firewall:
pattern: ^/login$
anonymous: ~
main:
remember_me:
key: "%secret%"
lifetime: 31536000 # 365 days in seconds
path: /
domain: ~ # Defaults to the current domain from $_SERVER
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: ROLE_ADMIN }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_ADMIN }
【问题讨论】:
-
我们在使用事件监听器根据登录后的角色重定向用户时遇到了类似的问题。如果您使用类似的侦听器,您将无法使用记住我功能,因为侦听器会在创建记住我 cookie 之前返回重定向。如果您这样做,请参阅reecefowell.com/2011/10/26/… 了解另一种重定向方法。
-
感谢 Luke,但这是一个简单的 remember_me: true 表单登录。即使我必须强制 TRUE,这对这个应用程序来说也很好。
标签: symfony cookies symfony-2.1 fosuserbundle remember-me