2016-12-22 10 views
0

同じログインフォームを使用して2つの異なるモデルからログインしようとしています。 config/Auth.phpで管理者ガードを定義しました。しかし、Foundation/AuthenticateUsersで管理者ガードを定義すると、データベーステーブルをチェックしてユーザーを検証しますが、同じログインフォームにリダイレクトされます。Laravel 5.3管理者ガードが動作しない

のconfig/auth.php

'guards' => [ 
    'web' => [ 
     'driver' => 'session', 
     'provider' => 'users', 
    ], 

    'admin' => [ 
     'driver' => 'session', 
     'provider' => 'admins', 
    ], 

    'api' => [ 
     'driver' => 'token', 
     'provider' => 'users', 
    ], 
], 

'providers' => [ 
    'users' => [ 
     'driver' => 'eloquent', 
     'model' => App\User::class, 
    ], 
    'admins' => [ 
     'driver' => 'eloquent', 
     'model' => App\Admin::class, 
    ], 

財団/ AuthenticatUsers

protected function guard() 
    { 
     return Auth::guard('admin'); 
    } 
public function login(Request $request) 
    { 
    $credentials = $this->credentials($request); 

    if (Auth::guard('web')->attempt($credentials, $request- >has('remember'))) { 
     return $this->sendLoginResponse($request); 
    } 
    elseif(Auth::guard('admin')->attempt($credentials, $request->has('remember'))) 
    { 
    return $this->sendLoginResponse($request); 
    } 
    } 
+0

人々が問題を見ることができるようにいくつかのコードを含める必要があります –

+0

こんにちは@AndyHolmes ..私は質問を更新しました。 –

+0

あなたはタイプミスを犯しました '返信Auth :: guard( 'admin);' FYI –

答えて

0

管理ガードが原因ミドルウェア認証のログインページにリダイレクトし、私はあなたがこの

public function __construct() 
{ 
    $this->middleware('auth:admin'); 
} 
ような何かをする必要があると思います

これを読むProtecting Routes、「Guardを指定する」の部分

関連する問題