密码验证总是在Laravel中返回失败(Hash :: check)

时间:2017-12-10 06:44:41

标签: laravel hash passwords

当我尝试通过Laravel 5.5中的哈希::检查验证帖子密码时,我遇到了问题

我用密码列制作了一个帖子表(在本例中为sales表)。当我尝试创建帖子时,它工作正常,密码是哈希值,也属于登录用户。然后在当前帖子页面上是一个带有输入(密码)的按钮,用于删除该特定帖子,但条件始终为假。

我的控制器公共功能销毁(请求$ request,$ id)

$input_pass = request('input_password');

    $sale = Sale::find($id);
    $hashed = $sale->password;

    // Check if sale password is correct
    if (Hash::check($input_pass, $sale->password)) {

    $sale->delete();

    } else {
        // something else to do
    }

对于邮政商店,我使用bcrypt方法来哈希密码。我也尝试过dd(' sale->密码'),它指的是销售表中的列(正确)和dd(' $ input_pass'),它指的是以DELETE格式输入密码(也是正确的) - 所以我有点困惑,为什么通行证不匹配。

1 个答案:

答案 0 :(得分:3)

从您的评论中我发现您有一个逻辑错误,您最初将密码哈希并将其保存在数据库中。

您正在将字符串password传递给bcrypt,其实际应该是request('password')

更改

'password' => bcrypt('password'),

'password' => bcrypt(request('password')),