如何解决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编码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。