Symfony 4-密码保存在argonni中,而不是仅在prod服务器上的bcrypt中



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

security:
encoders:
AppEntityTenantUser:
algorithm: 'bcrypt'

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

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

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

有人可能知道为什么UserPasswordEncoderInterface只在我的产品服务器上强制argon2I,而不是在yaml安全文件中设置的bcrypt?

开发服务器:PHP 7.3.12。

产品服务器:PHP 7.3.19

Symfony 4.4.5

编辑:经过其他一些测试后,密码在dev环境中的prod服务器上的bcrypt中正确编码。问题只出现在生产环境中。。。

问题已解决

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

最新更新