Laravel Sanctum API令牌认证失败

时间:2020-09-24 18:57:47

标签: laravel laravel-7

我正在使用Laravel密室创建可用于身份验证API请求的API令牌,但是当我创建令牌并使用纯文本令牌对邮递员的请求进行身份验证时,我总是会得到401。

这是我的终点:

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
     return $request->user();
});

我生成这样的令牌:

$user = $request->user();
        $abilities = [];

        if ($request->read) $abilities[] = 'data:read';
        if ($request->write) $abilities[] = 'data:write';

        $token = $user->createToken($request->name, $abilities);

        return response([
            'token' => $token->plainTextToken,
            'tokens' => $user->tokens
        ],201);

我确实拿回了palintext令牌,但是当我在邮递员中使用它时会失败

Bearer 118586|IgKEMCTQq85Lb6k1km6HrewBo3wUS23OuTNHj13i

我在我的API组中使用了这种中间件

EnsureFrontendRequestsAreStateful::class

我将其关闭,但没有任何变化。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

对于面临此问题的任何人, 您必须将token sanctum

中的api驱动程序从config/auth.php更改为guards => api => driver
'guards' => [

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

    'api' => [
        'driver' => 'sanctum',
        'provider' => 'users',
        'hash' => false,
    ],

],