我有旧版应用程序,它使用函数加密密码sha1()
,没有盐。
现在该站点正在转换为 Symfony2 和 FOSUserBundle,如何将它们转移到新数据库?
我有旧版应用程序,它使用函数加密密码sha1()
,没有盐。
现在该站点正在转换为 Symfony2 和 FOSUserBundle,如何将它们转移到新数据库?
我有同样的问题
只需像@iamdto 解释的那样覆盖编码器
# app/config/security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface:
id: your.custom.encoder
你的课应该是
use Symfony\Component\Security\Core\Encoder\PasswordEncoderInterface;
class CustomEncoder implements PasswordEncoderInterface
{
public function encodePassword( $raw, $salt ) {
//do not use salt here
return sha1($raw);
}
public function isPasswordValid( $encoded, $raw, $salt ) {
return $encoded === $this->encodePassword( $raw, $salt );
}
}
您应该添加一列“版本”以获取旧用户并在下次登录时更新他们的信息
你有没有尝试过 :
# app/config/security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha1
你也应该看看这些参考资料: