Hash :: check始终为false或null

问题描述 投票:0回答:1

为什么登录Hash :: check时始终为false或null?

这是我的套准控制器的一部分。我将密码保存在一个名为“ password”的表中,该表使用以下方法进行哈希处理]

    ....
               $user = new Hause_users();
               $user->username = request('username');
               $user->Email = request('email');
               $user->password = Hash::make(request('password'));
               $user->First_Last_Name = request('first_last_name');


               $user->save();

以下是我使用Hash :: check方法的登录控制器,在此我检查当前用户,在我的数据库中命名为Hause_users的数据库中的哈希密码,我通过LogIn表单获取字符串输入密码,然后尝试将其与Hash进行匹配: :校验。在这种情况下,通行证必须为123123。

问题是它总是返回“ Bye”。

我在这里做错了什么?

<?php

namespace App\Http\Controllers\userController;


use App\Model\Hause_users;
use App\User;
use Illuminate\Http\Request;

use Illuminate\Support\Facades\Hash;

use Illuminate\Routing\Controller;


use Illuminate\Support\Facades\Response;


class loginController extends Controller
{
    /**
     * Handle an authentication attempt.
     *
     * @param  \Illuminate\Http\Request $request
     *
     * @return Response
     */
    public function authLogin(Request $request)
    {
       $data = Hause_users::where('username', '=', request('username'))->first();
        $password = ($data['password']);


        if ( Hash::check('password' ,$password)){
            return 'welcome';
        }else{
            return 'Bye';
        }

        }

}

为什么登录Hash :: check时始终为false或null?这是我的注册控制器的一部分。我将密码保存在一个名为“ password”的表中,该表使用以下方法进行哈希处理.....

laravel hash eloquent
1个回答
0
投票

您应该将用户输入的密码传递给第一个参数,并将散列的密码从DB传递给Hash::check的第二个参数,如下所示:

© www.soinside.com 2019 - 2024. All rights reserved.