【问题标题】:Password verify always returns fail in Laravel (Hash::check)Laravel 中的密码验证总是返回失败(Hash::check)
【发布时间】:2018-05-24 00:15:00
【问题描述】:

我在 Laravel 5.5 中尝试通过 Hash::check 验证发布密码时遇到问题

我制作了一个带有密码列的帖子表(在本例中为销售表)。当我尝试创建帖子时,它运行良好,密码经过哈希处理,也属于登录用户。然后在当前帖子页面上是一个带有输入(密码)的按钮,用于删除该特定帖子,但条件始终为 false。

我的控制器 public function destroy(Request $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
    }

对于 post 存储,我使用 bcrypt 方法对密码进行哈希处理。我也一直在尝试 dd('sale->password') 引用销售表中的列(正确)和 dd('$input_pass') 引用以 DELETE 形式输入的密码(也是正确的) - 所以我有点疑惑,为什么pass不匹配。

【问题讨论】:

  • 贴出你加密密码的代码
  • $sale = Sale::forceCreate([ 'sale_title' => request('sale_title'), 'password' => bcrypt('password'), 'user_id' => auth()- >user()->id ]);

标签: laravel hash passwords


【解决方案1】:

从您的评论中,我发现您最初对密码进行哈希处理并将其保存在数据库中存在逻辑错误。

您将字符串password 传递给bcrypt,实际上它应该类似于request('password')

改变

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

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

【讨论】:

    猜你喜欢
    • 2014-02-25
    • 1970-01-01
    • 2021-06-05
    • 2019-08-15
    • 2020-02-14
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多