![](/img/trans.png)
[英]Symfony2: FOSUserBundle - Single firewall, multiple login forms/entry points
[英]Symfony2 + FOSUserBundle: 2 login forms
我無法讓登錄頁面在www子域上工作。 登錄的安全性如下:
firewalls:
main:
pattern: ^/
host: my.mydomain.dev
form_login:
check_path: '/login_check'
login_path: '/login'
default_target_path: '/'
provider: fos_userbundle
csrf_provider: form.csrf_provider
logout:
path: '/logout'
target: '/login'
anonymous: true
switch_user: true
access_control:
# ASSETS NEEDED ON ALL PAGES #
- { path: ^/assets/img, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/assets/css, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/assets/js, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/_wdt, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/_profiler, role: IS_AUTHENTICATED_ANONYMOUSLY }
# END ASSETS NEEDED ON ALL PAGES #
- { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/login_check, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_USER, host: my.domain.dev }
- { path: ^/, host: linkmetrix.dev, roles: IS_AUTHENTICATED_ANONYMOUSLY }
我在www.mydomain.com/login
有一個登錄頁面,在my.mydomain.com/login
有一個登錄頁面。
當我登錄my.mydomain.com/login
上的頁面時,它可以正常運行。 試圖找出如何在www.mydomain.com/login
上獲得登錄頁面的方法,與此同時,最終結果會將我帶到my.mydomain.com
謝謝你的幫助!
我試圖為前端創建第二個firewall
,但是我沒有做任何事情。 任何建議,技巧或技巧都將不勝感激。
我遇到了類似的問題,發現我需要調整用戶登錄時在會話Cookie中設置的域。原因是子域設置為用戶登錄的位置,因此消除了子域會議的一部分解決了該問題。
轉到config.yml文件並添加以下行:
framework:
session:
cookie_domain: "domain.com"
Symfony不應在乎您將哪個域用於防火牆,請嘗試刪除host: my.mydomain.dev
指令。
每個域/子域都需要使用相對的access_control
正確配置防火牆。
然后,您需要添加到access_control
:
錯誤:
- { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/login_check, roles: IS_AUTHENTICATED_ANONYMOUSLY }
正確:
- { host: my.domain.dev, path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY } - { host: my.domain.dev, path: ^/login_check, roles: IS_AUTHENTICATED_ANONYMOUSLY }
因此,對於任何域,您都需要在access_control
上添加host:
param。
我不知道您的用例以及為什么需要它,但是您可以在想要使用的任何防火牆中指定目標路徑
form_login: always_use_default_target_path: true default_target_path: your_target_path
編輯:但是,用戶在重定向后,可能會遇到一些身份驗證問題, 因為多個防火牆不共享安全上下文 。 解決此問題的另一種方法是添加與DOCS中所述相同的context
指令
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.