symfony - Symfony 登录在 TEST 和 PROD 环境中失败
问题描述
我有 2 个安全提供程序的 symfony 5.3 安装。
如果我使用的是 DEV 环境,我可以使用两个提供商的用户登录,但是当我将环境更改为 TEST 或 PROD 时,我只能使用其中一个登录。
如果我将日志记录添加到我的身份验证器,我会看到我在两种情况下都使用正确的用户访问了 onAuthorizationSuccess 函数,但是如果我在 TEST 或 PROD 上,我看到的页面又是登录页面。如果我在环境之间切换,我可以随时复制该行为:dev ok,test 和 prod 不会从其中一个提供商的登录页面传递。另一个在所有情况下都可以。
我知道 Symfony 在 dev 上的工作方式与 test 或 prod 不同,但我无法弄清楚有什么区别。
日志上没有错误,我有缓存:清除几次..
有什么办法可以调试这种行为?
如果我在 DEV 或 TEST/PROD 环境中,行为会完全改变。测试环境使用 .env.dev 的 .env.test 副本,因此它不应该影响结果。
如果我将 .env 更改为使用 DEV 并清理缓存,它可以工作:两种类型的用户可以登录,如果我将 .env 更改为使用 TEST 并再次清理缓存,它就不起作用了......
我的 security.yaml(相关部分):
security:
chain_provider:
chain:
providers: [app_user_provider, sec_user_provider]
app_user_provider:
entity:
class: App\Entity\WebUser
property: login
sec_user_provider:
entity:
class: App\Entity\Security\User
property: login
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: lazy
provider: chain_provider
guard:
authenticators:
- App\Security\BasicAuthenticator
logout:
path: app_logout
解决方案
推荐阅读
- css - Css-grid:如何添加块并使其他元素向上移动?
- vue.js - 如何在嵌套的 v-for vuejs 中访问 id 并使用 axios 发布
- html - “了解更多”按钮在我的 html 代码中不起作用
- azure-devops - 通过管道部署 Azure App Service Canary
- reactjs - 使用有区别吗
和 在 NativeBase ui 库中? - hdf5 - 使用 HDFql 的 HDF5 文件比预期大
- vue.js - 如何通过 Axios 将文件和数据一起发布?
- chart.js - 悬停时如何在甜甜圈图表中缩放扇区?
- sql - 访问查询条件 from 复选框中的 from
- azure-devops - 使用 Azure DevOps 管理版本