我开发了一个 REST API,有两种连接方式:session 和 oauth。基本上,我的网站会使用 session 模式,第三方软件会使用 oauth 模式。
我设法让 session 和 oauth 模式在 symfony 中工作,但我不能让它们同时工作。
这是我的防火墙安全配置:
firewalls:
auth_oauth_token:
pattern: ^/auth/oauth/v2/token
security: false
api:
pattern: ^/api
anonymous: false
fos_oauth: true
stateless: true
auth:
pattern: ^/
anonymous: ~
form_login:
login_path: /auth/session/check
check_path: /auth/session/login
always_use_default_target_path: true
default_target_path: /auth/session/check
failure_path: /auth/session/check
failure_forward: false
use_forward: false
failure_forward: false
username_parameter: username
password_parameter: password
post_only: true
remember_me: false
require_previous_session: false
logout:
path: /auth/session/logout
target: /auth/session/logged_out
invalidate_session: false
会话处理:/auth/session。OAuth 处理:/auth/oauth。api:/api。
因此,使用此配置,首先使用“api”防火墙,我可以使用令牌登录。但即使使用会话登录,如果我不指定令牌,我将无权访问。
首先使用“auth”防火墙,我可以使用会话表单登录。但即使我指定了一个令牌,我也无权访问。
我对此越来越疯狂。我在堆栈溢出中发现了一些关于链提供商的东西,我可能需要像“链防火墙”这样的东西......如果被禁止,请检查另一个防火墙。
谢谢