使用Laravel 5.8 / Vue的SPA-auth()返回令牌true而不是令牌值

时间:2019-07-23 07:40:59

标签: laravel vue.js vuejs2 jwt

我正在使用Laravel 5.8和VUE创建SPA,并且正在使用JWT通过令牌进行身份验证。

身份验证有效,但是它返回true作为值而不是令牌值。我认为我的配置已损坏,无法再次修复。

我的登录方法是:

    $credentials = request(['email', 'password']);

    if (Auth::attempt($credentials)) {
        if (! $token = auth()->attempt($credentials, false)) {
            return response()->json(['error' => 'Unauthorized'], 401);
        }

         return $token;
     }

结果为“ true”,但我需要JWT值。

退后几步:

我正在使用: tymon / jwt-auth

身份验证

function auth($guard = null)
{
    if (is_null($guard)) {
        return app(AuthFactory::class);
    }

    return app(AuthFactory::class)->guard($guard);
}

config / auth.php

  'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'jwt',
        'provider' => 'users',
    ],

    'users' => [
        'driver' => 'jwt',
        'provider' => 'users',
    ],
],

是否有建议检查我的配置?

2 个答案:

答案 0 :(得分:1)

您应使用软件包提供的JWTAuth门面:

        if (! $token = \JWTAuth::attempt($credentials)) {
            return Response::json(['error' => 'Unauthorized'], 401);
        }

答案 1 :(得分:0)

您可以使用 guard('api') guard('users')方法,因为您有多个Guards

    $credentials = request(['email', 'password']);

    if (!$token = auth()->guard('api')->attempt($credentials)) {
         return response()->json(['error' => 'Unauthorized'], 401);
    }
    
    return $token;