我可以检查散列密码是否等于 laravel 中的特定值吗?

Can i check if a hashed password is equal to a specific value in laravel?

在我的应用程序中,我为我创建的所有用户设置了默认密码(例如 1234),当用户首次登录时,他将被要求更改该密码

我的目标是当用户登录时我想检查他的密码是否等于默认值 (1234) 如果是这样我将他重定向到重置页面如果不是我什么都不做

所以我的问题是 如何检查该用户的密码是否等于我拥有的值?

我在 Whosebug 上找到了一个对我帮助很大的答案 您可以通过多种方式使用它:

容器外

$user = User::find($id);  
$hasher = app('hash');  
if ($hasher->check('passwordToCheck', $user->password)) 
{
    // Success  
}

使用门面

$user = User::find($id);
if (Hash::check('passwordToCheck', $user->password)) 
{
    // Success   
}

出于兴趣使用通用 php 函数 password_verify 也可以。然而,这是有效的,因为它使用的默认哈希算法是 bcrypt。

if (password_verify('passwordToCheck', $user->password))  
{
    // Success    
}