Laravel 中的手动身份验证失败

时间:2020-12-31 14:35:38

标签: php laravel laravel-7

我正在尝试进行自定义登录,但 Auth::attempt 返回 false。

这是我的控制器:

<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Controller;

class MyUserController extends Controller
{
    public function authenticate(Request $request)
    {
        $credentials = $request->only('email', 'password');

        if (Auth::attempt($credentials)) {
            
            return redirect()->intended('/');
        }
    }

}

这是 auth.php

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'usuarios',
    ],
    'api' => [
        'driver' => 'token',
        'provider' => 'usuarios',
    ],
],

'providers' => [
    'usuarios' => [
        'driver' => 'eloquent',
        'model' => Usuario::class,
    ],

我得到的错误是

未找到类 '\Usuario' {"exception":"[object] (Error(code: 0): Class '\Usuario' not found at /var/www/laravel-boilerplate/vendor/laravel/framework/ src/Illuminate/Auth/EloquentUserProvider.php:183)

1 个答案:

答案 0 :(得分:1)

您没有传递密码。指定字段名称

$credentials = $request->only('mail', 'password_laravel');

if (Auth::attempt(['mail'=>$credentials->mail, 'password'=>$credentials->password])) {
    
    $request->session()->regenerate();

    return redirect()->intended('/');

} else {
    Log::info('Authentication failed.');
}

注意:在 attempt 函数后重新生成会话。正如here所说。