在类AppServiceProvider
中使用auth('api')-> user()时返回null
此代码config/auth
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
`
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'jwt',
'provider' => 'users',
],
],
`
这是类AppServiceProvider
中的代码功能启动
view()->composer('dashboard::layouts.*', function ($view) {
dd(auth('api')->user());
$view->with('user', auth('api')->user());
});
答案 0 :(得分:0)
您在应用中使用会话还是令牌?如果您使用令牌,则应在标头请求中包含令牌,这样,如果令牌未发送,则由于该用户未通过身份验证,您将获得空用户;但是,如果您使用会话,则只需使用Auth::user()
即可获得身份验证的用户
答案 1 :(得分:0)
大多数时间都可以使用Bearer前缀(例如:bearer token_value)在标头中发送令牌,如果您使用nginx在标头中的Authorization参数中添加令牌值,请不要忘记将客户端中间件添加到您的路由中。 要获取经过身份验证的用户信息,您可以执行以下操作:
$token = $request->bearerToken();
$tokenId = (new Parser())->parse($token)->getHeader('jti');
$client = Token::find($tokenId);
return $client['user_id'];