Laravel-从特定的身份验证防护中获取用户

Mat*_*eta 1 php authentication api laravel

我想为我的Web应用程序创建一个API。在此API中,用户由令牌标识。一切正常,但是在我的控制器中,当我想获取用户时,我必须编写如下内容:

Auth::guard('api')->user();
Run Code Online (Sandbox Code Playgroud)

每次我必须使用此方法来获取用户。我想使用类似的东西$request->user(),但是这个选项让我null:(

如果我想从请求用户那里得到该怎么办?谁能帮我?

sep*_*ehr 5

您还需要将防护传递给Request::user()方法。

$user = $request->user('api');
Run Code Online (Sandbox Code Playgroud)

或者,您可以为API路由组设置默认防护:

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

这样,您只需要设置一次,并且每次调用诸如之类的东西时Auth::user(),便会基于先前设置的防护获得用户对象。

请查看本文,以获取更多有关以下主题的信息:
在Laravel中设置每条路线的警卫队