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

Xoc*_*zin 7 security authentication firewall symfony

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

这些区域中的每一个都有自己的防火墙保护.WEB界面使用登录表单和API进行身份验证http_basic.

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

我看到了另一个问题完全相同的问题.但他们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: ~
Run Code Online (Sandbox Code Playgroud)

小智 7

您可能希望在此处查看:使用一个登录表单验证多个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
Run Code Online (Sandbox Code Playgroud)

  • 我引用了这个答案,这是一个非常相似的问题,区别在于即时通讯使用两种不同的身份验证方法(无状态http基本和另一种使用cookie)我已经尝试过配置但是它还没有解决 (3认同)