Symfony 3使用2个防护认证器
我正在应用程序中使用guard身份验证。我有两种不同的方式登录2个不同的警卫认证。 我的安全设置如下所示:Symfony 3使用2个防护认证器,symfony,authentication,Symfony,Authentication,我正在应用程序中使用guard身份验证。我有两种不同的方式登录2个不同的警卫认证。 我的安全设置如下所示: firewalls: login: pattern: /(login|api.*)$ anonymous: ~ autolog: pattern: /(autolog.*)$ anonymous: ~ guard: authenticators:
firewalls:
login:
pattern: /(login|api.*)$
anonymous: ~
autolog:
pattern: /(autolog.*)$
anonymous: ~
guard:
authenticators:
- app.autolog_authenticator
main:
logout:
invalidate_session: true
path: /%locale%/logout
target: /%locale%/login
guard:
authenticators:
- app.token_authenticator
token_验证器工作正常。但是当我使用autolog时,用户完全与autolog\u验证器登录,但随后它进入拒绝连接的令牌\u验证器。
我如何告诉应用程序只使用自动身份验证程序而不使用令牌身份验证程序?这看起来并不理想
pattern: /(login|api.*)$
尝试仅使用令牌保护您的api区域
这里看一下这个实现示例
您可能需要的另一个关键字是
入口点
,它定义了什么样的身份验证具有更高的优先级我终于找到了我可以做的事情。
我只是对每个守卫使用了相同的上下文。我是这样用的
firewalls:
login:
pattern: /(login|api.*)$
anonymous: ~
autolog:
pattern: /(autolog.*)$
context : primary_auth
anonymous: ~
guard:
authenticators:
- app.autolog_authenticator
main:
context : primary_auth
logout:
invalidate_session: true
path: /%locale%/logout
target: /%locale%/login
guard:
authenticators:
- app.token_authenticator