0

我正在尝试在 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)仅在不登录用户的情况下进行身份验证?

4

1 回答 1

0

在 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
于 2019-07-18T02:01:45.607 回答