如何在 Symfony 上验证密码?
我想验证用户的现有密码(以允许他们更改密码)。
我想走以下路线,但遇到了散列密码总是显示为不同散列的问题。我正在使用UserPasswordHasherInterface
。
$hashedOldPassword = $passwordHasher->hashPassword(
$user,
$data['oldPassword']
);
if ($hashedOldPassword === $user->getPassword()) {
setNewPassword();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
要验证密码,您无需重新哈希它。每次调用
hashPassword()
时,您都会得到不同的哈希值,因为哈希算法引入了随机 salt 以确保安全。但该接口包含一个更方便的
isPasswordValid()
方法。所以简单地做:
To verify a password you do not rehash it. Each time you call
hashPassword()
you'll get a different hash, because the hashing algorithm introduces a random salt for security.But that interface includes a much more convenient
isPasswordValid()
method.So simply do: