具有多个提供者的 LexikJWTAuthenticationBundle
LexikJWTAuthenticationBundle with multiple provider
我在 Api-Platform 中使用 LexikJWTAuthenticationBundle。我有多个这样的提供者:
providers:
app_user_provider:
entity:
class: App\Entity\User
property: email
app_candidat_provider:
entity:
class: App\Entity\Candidat
property: email
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
candidat:
pattern: ^/candidat/authentication_token
anonymous: true
lazy: true
stateless: true
provider: app_candidat_provider
json_login:
check_path: /candidat/authentication_token
username_path: email
password_path: password
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: lexik_jwt_authentication.handler.authentication_failure
guard:
authenticators:
- lexik_jwt_authentication.jwt_token_authenticator
main:
anonymous: true
lazy: true
stateless: true
provider: app_user_provider
json_login:
check_path: /authentication_token
username_path: email
password_path: password
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: lexik_jwt_authentication.handler.authentication_failure
guard:
authenticators:
- lexik_jwt_authentication.jwt_token_authenticator
当我使用候选防火墙 'candidat/authentication_token' 获取令牌时,它正在工作,但是当我使用授权令牌 header 时,它正在使用主防火墙而不是候选防火墙加载用户。
捆绑包如何知道仅通过令牌使用哪个防火墙?
如何处理多个供应商?
预先感谢您的帮助!
Symfony 每个请求只使用一个防火墙,它是第一个与模式匹配的防火墙。因此,在您的情况下,它对 ^/candidat/authentication_token url 使用候选防火墙,而其他请求与候选模式不匹配,他们将使用“main”。
我在 Api-Platform 中使用 LexikJWTAuthenticationBundle。我有多个这样的提供者:
providers:
app_user_provider:
entity:
class: App\Entity\User
property: email
app_candidat_provider:
entity:
class: App\Entity\Candidat
property: email
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
candidat:
pattern: ^/candidat/authentication_token
anonymous: true
lazy: true
stateless: true
provider: app_candidat_provider
json_login:
check_path: /candidat/authentication_token
username_path: email
password_path: password
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: lexik_jwt_authentication.handler.authentication_failure
guard:
authenticators:
- lexik_jwt_authentication.jwt_token_authenticator
main:
anonymous: true
lazy: true
stateless: true
provider: app_user_provider
json_login:
check_path: /authentication_token
username_path: email
password_path: password
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: lexik_jwt_authentication.handler.authentication_failure
guard:
authenticators:
- lexik_jwt_authentication.jwt_token_authenticator
当我使用候选防火墙 'candidat/authentication_token' 获取令牌时,它正在工作,但是当我使用授权令牌 header 时,它正在使用主防火墙而不是候选防火墙加载用户。
捆绑包如何知道仅通过令牌使用哪个防火墙?
如何处理多个供应商?
预先感谢您的帮助!
Symfony 每个请求只使用一个防火墙,它是第一个与模式匹配的防火墙。因此,在您的情况下,它对 ^/candidat/authentication_token url 使用候选防火墙,而其他请求与候选模式不匹配,他们将使用“main”。