2017-02-25 6 views
1

WebアプリケーションのAPIを作成したいと考えています。このAPIでは、ユーザーはトークンによって識別されます。私は、ユーザーを取得するには、このメソッドを使用する必要がありますLaravel - 特定の認証ガードからユーザーを取得する

Auth::guard('api')->user(); 

たびに:私は、ユーザーを取得したい場合は、すべての作品が、私のコントローラでは、私はこのような何かを記述する必要があります。私は$request->user()のようなものを使用したいが、このオプションはnull私を返す:(

私は誰も私を助けることができますか?要求ユーザから取得したい場合、私は何をすべきか?

答えて

3

あなたはまたRequest::user()メソッドにガードを渡す必要があります。

$user = $request->user('api'); 

またはあなたのAPIのルートグループのデフォルトのガードを設定することができます。

Route::group(['domain' => 'api.app.dev', 'guard' => 'api'], function() { 
    // ... 
}); 

この方法では、一度だけ設定する必要があり、Auth::user()のようなものを呼び出すたびに、以前に設定されたガードに基づいてユーザーオブジェクトが取得されます。

は、トピックに関する詳細については、この記事を見てください:答えのための
Setting the Guard Per Route in Laravel

+0

感謝を! :)私はもう1つの質問があります:apiを作成するときに、ApiControllerのようなものを作成し、APIのすべてのメソッドを置くか、Userメソッド(Webアプリケーションのメソッドも含む)のメソッドをputするメソッドがあります。 –

+0

私は物を少しきれいに保つために、別の 'ApiController'と一緒に行きます。 – sepehr

関連する問題