Symfony 4-密码仅在产品服务器上保存在argon2i中,而不是bcrypt中

问题描述

在我的Yaml安全配置文件中:

security:
    encoders:
        App\Entity\Tenant\User:
          algorithm: 'bcrypt'

在我的用户控制器中修改用户编辑页面的密码:

$user->setPassword($passwordEncoder->encodePassword($user,$plain_password));

在prod和dev环境中的我的开发服务器上,一切正常。但是在我的prod服务器上,symfony在argon2i而不是bcrypt中转换密码。我不知道为什么。...因此,在我的数据库中,例如存储的散列密码是“ $ argon2i $ v = 19 $ m = 65536,t = 4,p = 1 $ aFRHTC5sQTZESXpOOVlFTA $ NZvz / a0EkjL00cf9ZbYzuhiT + nMq13Dvr2Xp / lU78L bcrypt。

有人会知道为什么UserPasswordEncoderInterface仅在生产服务器上强制argon2I而不是在yaml安全文件中设置的bcrypt吗?

Dev服务器:PHP 7.3.12。

产品服务器:PHP 7.3.19

Symfony 4.4.5

编辑: 经过一些其他测试之后,密码已在开发环境中的prod服务器上的bcrypt中正确编码。 问题仅在产品环境中出现...

解决方法

问题解决了

这是一个缓存问题,我的第一个反应是使用命令行'cache:clear --env = prod',但这并不能解决我的问题。为了确保我手动删除了产品缓存文件夹。 这样就解决了问题,现在密码已正确地以bcrypt编码。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...