我有一个带有 2 个区域的 Symfony 应用程序,一个用于从网页访问的客户端,另一个用于来自 AJAX 和 Web 服务的 API 调用。
这些区域中的每一个都由其自身的防火墙保护。WEB 界面使用登录表单进行身份验证,API 使用http_basic
.
两种防火墙都工作正常,但是当 WEB 接口对 API 接口进行 AJAX 调用时,浏览器会提示用户再次登录,即使他已经登录(通过登录表单)。这是我想要避免的。我希望同时对两个防火墙进行身份验证以防止出现此提示。
我见过另一个问题完全相同的问题。但是他们http_basic
在两个防火墙上都使用了身份验证,因此,提出的解决方案不适用于我的情况:
我的安全.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: ~