在类AppAppProvider中使用auth('api')-> user()时返回null

时间:2018-09-02 09:26:59

标签: laravel-5

在类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()); });

2 个答案:

答案 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'];
相关问题