Как пройти аутентификацию и авторизоваться в laravel, используя guard?
Я пытаюсь сделать аутентификацию, используя guard в Laravel 5.8. Аутентификация пройдена, но как-то не входит в систему пользователя.
public function login(Request $request)
{
$email = $request->email;
$password = $request->password;
$credentials = $request->only('email','password');
if (Auth::guard('owner')->attempt($credentials,$request->remember)){
//echo "Authentication is passed";
return redirect()->intended('/owner/dashboard');
}
return redirect('/owner')->with('error','Login failed.');
}
При перенаправлении на маршрут /owner/dashboard
который фильтруется с $this->middleware('owner')
пользователь будет перенаправлен в форму входа и получит уведомление о том, что вход не выполнен. Является Auth::guard('owner')->attempt($credentials)
только аутентификация без входа в систему пользователя?
1 ответ
В config/auth.php добавьте это добавьте новый сторож и провайдера для этого сторожа
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'owner' => [
'driver' => 'session',
'provider' => 'owner',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
],
```
```
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'owner' => [
'driver' => 'eloquent',
'model' => App\Owner::class,
],
],
```
```
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
],
'owner' => [
'provider' => 'owner',
'table' => 'password_resets',
'expire' => 60,
],
],
```
Follow this article
https://medium.com/@sagarmaheshwary31/laravel-multiple-guards-authentication-setup-and-login-2761564da986