Symfony 4-仅在prod服务器上,密码保存在argon2i中,而不是bcrypt中
在my yaml安全配置文件中:Symfony 4-仅在prod服务器上,密码保存在argon2i中,而不是bcrypt中,symfony,symfony4,password-encryption,Symfony,Symfony4,Password Encryption,在my yaml安全配置文件中: security: encoders: App\Entity\Tenant\User: algorithm: 'bcrypt' 在“我的用户控制器”中,修改用户编辑页面的密码: $user->setPassword($passwordEncoder->encodePassword($user,$plain_password)); 在我的prod和dev环境中的开发服务器上,一切都正常。但是在我的prod
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/lU78Lc”,而不是bcrypt
有人会知道为什么UserPasswordEncoderInterface只在我的prod服务器上强制argon2I,而不是在yaml安全文件中设置的bcrypt
开发服务器:PHP7.3.12
Prod服务器:PHP7.3.19
Symfony 4.4.5
编辑:
在其他一些测试之后,密码在dev环境中的prod服务器上的bcrypt中正确编码。
问题仅出现在产品环境中…问题已解决
这是一个缓存问题,我的第一个反射是使用命令行“cache:clear--env=prod”,但这并没有解决我的问题。为了确保我手动删除了prod缓存文件夹。
这就解决了问题,密码现在正确地用bcrypt编码