簡體   English   中英

Symfony2 + FOSUserBundle:2個登錄表單

[英]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.

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