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