Symfony 4 - 密码保存在 argon2i 而不是 bcrypt 仅在产品服务器上
Symfony 4 - password saved in argon2i instead of bcrypt only on prod server
在我的 yaml 安全配置文件中:
security:
encoders:
App\Entity\Tenant\User:
algorithm: 'bcrypt'
在我的用户控制器中修改用户编辑页面的密码:
$user->setPassword($passwordEncoder->encodePassword($user,$plain_password));
在我的生产和开发环境中的开发服务器上 work.But 在我的生产服务器上 symfony 在 argon2i 而不是 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
编辑:
经过一些其他测试后,密码在开发环境的生产服务器上以 bcrypt 正确编码。
问题只出现在产品环境中...
问题已解决
这是一个缓存问题,我的第一反应是使用命令行'cache:clear --env=prod',但这并没有解决我的问题。为确保我手动删除了产品缓存文件夹。
这解决了问题,密码现在已正确编码为 bcrypt。
在我的 yaml 安全配置文件中:
security:
encoders:
App\Entity\Tenant\User:
algorithm: 'bcrypt'
在我的用户控制器中修改用户编辑页面的密码:
$user->setPassword($passwordEncoder->encodePassword($user,$plain_password));
在我的生产和开发环境中的开发服务器上 work.But 在我的生产服务器上 symfony 在 argon2i 而不是 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
编辑: 经过一些其他测试后,密码在开发环境的生产服务器上以 bcrypt 正确编码。 问题只出现在产品环境中...
问题已解决
这是一个缓存问题,我的第一反应是使用命令行'cache:clear --env=prod',但这并没有解决我的问题。为确保我手动删除了产品缓存文件夹。 这解决了问题,密码现在已正确编码为 bcrypt。