繁体   English   中英

如何同时在2个不同的symfony2防火墙上进行身份验证?

[英]How to authenticate on 2 different symfony2 firewalls at the same time?

我有一个Symfony应用程序,其中有2个区域,一个区域用于客户端从网页访问,另一个区域用于从AJAX和Web服务进行API调用。

每个区域都由自己的防火墙保护。 WEB界面使用登录表单进行身份验证,API则使用http_basic身份验证。

两种防火墙都能正常工作,但是当WEB界面对API界面进行AJAX调用时,浏览器会提示用户再次登录,即使该用户已经登录(通过登录表单)也是如此。 这就是我要避免的。 我希望同时对两个防火墙进行身份验证,以防止出现此提示。

我看过另一个问题,但问题完全相同 但是他们在两个防火墙上都使用http_basic身份验证,因此,提出的解决方案http_basic用于我的情况:

使用一个登录表单对多个symfony2防火墙进行身份验证

我的security.yml

#....
firewalls:
    api:
        pattern:    ^/API
        context: primary_auth
        stateless:  true
        http_basic: 
            realm: "API: Please log in"

    web:
        pattern:    ^/
        context: primary_auth
        form_login:
            check_path: /login_check
            login_path: /login
            provider: fos_userbundle
        logout:
            path:   /logout
            target: /
        anonymous: ~

您可能需要看这里: 使用一种登录表单对多个symfony2防火墙进行身份验证,那里有解决类似问题的方法

引:

security:
# providers etc ...

    firewall:
        main:
            pattern: # ...
            provider: my_users
            http_basic: ~
            context: primary_auth  # new
        api:
            pattern: # ...
            provider: my_users
            http_basic: ~
            context: primary_auth  # new

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM