2017-02-03 17 views
1

私はLaravel 5.4でマルチ認証テストを作成しました。それは、カスタムミドルウェア、カスタムEloquentプロバイダなどを使用しています。認証フローが動作している、私は両方の方法でログインすることができます。しかし、ユーザがサインインされている場合は、ホームコントローラでAuth::user()またはAuth::guard()->user()というユーザをチェックしたいときは空です。 Auth::guard()も空です。しかし、私は理解していない、なぜ?それは署名されたユーザーのインスタンスが含まれている必要がありますか?Laravel 5.4マルチ認証 - Auth :: guard() - > user()empty

また$request->getUserResolver()はo.O

は私が間違って何をしました

...ガードがnullであることを述べていますか?

Here it is私のコードをチェックしたい場合は、私のテストレポ。

ありがとうございます!

編集1:

\app\Http\Controllers\Employee\HomeController.phpAuth::guard()->user()Auth::user()は空です。

namespace App\Http\Controllers\Employee; 

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

class HomeController extends Controller 
{ 

    public function __construct(Request $request) 
    { 
     $this->middleware('auth.employee:employee'); 
    } 

    public function index(Request $request) 
    { 
     $users[] = Auth::user(); 
     $users[] = Auth::guard()->user(); 
     $users[] = Auth::guard('employee')->user(); 

     dd($users); 

     return view('employees.home.index'); 
    } 
} 
+0

ここに関連コードを表示するのはかなり良いアイデアです。 – Chay22

+1

最後にGitHubリポジトリへのリンクを張った人物との投稿を見ましたが、GitHubは約1時間ダウンしてしまい、質問は下りました。実話。 – apokryfos

+0

@ Chay22私はマルチ認証をどのように実装したのか、私の質問にはすべてのステップ(コードスニペット付き)を説明してほしいですか? –

答えて

1

Auth::shouldUse(your_guard_name)でドライバ名;
あなたのログイン機能でこれを呼び出してください

0

変更config/auth.php

'employees' => [ 
     'driver' => 'eloquent', 
     'model' => App\Models\UserEmployee::class, 
    ], 
    'customers' => [ 
     'driver' => 'eloquent', 
     'model' => App\Models\Customer::class, 
    ], 

。..として
+0

なぜ私はそれをするべきですか?それは認証のカスタム条件を持つ私のカスタムドライバです。 –

関連する問題