我正在尝试进行自定义登录,但 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)
答案 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所说。