在Auth :: attempt上禁用散列

Dan*_*zon 1 authentication laravel

我正在使用没有散列密码的旧数据库,此数据库也需要取消散列,因为它连接到Runnable JAR.

我做了所有事情来连接它与Laravel 5.3并且它工作,但..当登录它总是返回false.

这是功能代码:

public function login(Request $request)
{
    $this->validate($request, [
        'account' => 'required|alpha_num|exists:accounts,account',
        'password' => 'required|alpha_num|min:4',
    ]);


    if(Auth::attempt(['account' => $request->account, 'password' => $request->password])){
        return redirect()->route('account');
    }

    return redirect()->back()->withInput();
}
Run Code Online (Sandbox Code Playgroud)

我得出结论,Auth ::尝试通过视图哈希给定的密码,并且当与数据库中未散列的密码进行比较时,返回false.

我怎样才能解决这个问题??

谢谢.

mbo*_*ood 6

您将需要使用另一种手动身份验证方法.

$user = User::where('account', $request->account)
            ->where('password', $request->password)
            ->first();

if($user) {
    Auth::loginUsingId($user->id);
    // -- OR -- //
    Auth::login($user);
    return redirect()->route('account');
} else {
    return redirect()->back()->withInput();
}
Run Code Online (Sandbox Code Playgroud)

  • @DanielPinzon请标记答案已被接受:) (2认同)