我在 symfony2 项目中使用FOSUserBundle
。用户可以登录并注销,一切正常。
"后端路由"就像:
/backend
哪个重定向到:
/backend/login
第一个问题:
如果用户直接调用登录页面:
/backend/login
成功登录后,他被重定向到首页,而不是/backend
。
第二个问题:
将用户重定向到检查凭据的URL:
/backend/login_check
某些浏览器会保存此网址,因此会进入自动完成状态,并且用户在重定向到backend/login_check
时不会重新调用login
。但问题是,在成功登录后, symfony2 会尝试将用户重定向到失败的路由check_login
,并且大部分时间会导致再次显示登录窗口。
security.yml
firewalls:
login_firewall:
pattern: ^/backend/login$
anonymous: ~
backend:
pattern: ^/backend
form_login:
provider: fos_userbundle
login_path: /backend/login
check_path: /backend/login_check
#use_forward: true
的routing.yml
login:
pattern: /backend/login
defaults: { _controller: VendorNameBundle:User:login }
login_check:
pattern: /backend/login_check
如何解决这两个问题?