2017-02-25 62 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

謝謝回答! :)我還有一個問題:當創建api時,最好的選擇是創建類似ApiController的東西,並將所有的方法放在api中,或者在UserController中放置用戶方法放置方法(也適用於Web應用程序)? –

+0

我會用一個單獨的'ApiController'來保持一點清潔。 – sepehr