【发布时间】:2023-01-11 18:10:28
【问题描述】:
我希望它会很清楚。我有一个非常旧的应用程序,前段时间升级到 SF4.4,并且一直在维护和开发。不幸的是有很多旧代码。我必须创建一个防火墙,该防火墙将同时支持旧的身份验证器解决方案 (form_login) 和新的身份验证器解决方案 - LexikJWTAuthenticationBundle。这意味着当用户在标头中具有会话或 JWT 令牌时,他们可以获得访问页面。
我有这个配置并且工作正常:
main:
pattern: '^/'
anonymous: ~
logout_on_user_change: true
form_login:
provider: main
##
remember_me:
##
logout:
##
guard:
provider: main
authenticators:
- lexik_jwt_authentication.jwt_token_authenticator
该解决方案支持所有端点/页面的会话和 JWT 令牌。但不幸的是,我发现在 /^ 的地方使用了 Authorization: Bearer <token> 和 JWTTokenAuthenticator 会产生一些问题并使一切复杂化。接下来的事情 - 这可能是危险的。
所以我不得不创建这个解决方案:
react-api:
pattern: '^/react-api'
anonymous: ~
guard:
provider: main
authenticators:
- lexik_jwt_authentication.jwt_token_authenticator
main:
pattern: '^/'
anonymous: ~
logout_on_user_change: true
form_login:
provider: main
#
remember_me:
#
logout:
##
在 /react-api 的当前解决方案中 - 我无法通过会话授权。当然,模式阻止了它。当我在 lexik_jwt_authentication.jwt_token_authenticator 之前/之后添加支持会话的默认身份验证器时,我认为它可以解决问题。 Symfony 有什么东西吗?或者是另一种解决方案?
【问题讨论】:
标签: php symfony symfony4 symfony-security lexikjwtauthbundle