首页 > 解决方案 > Laravel Sanctum - 在 auth:sanctum 上获得 401,登录后返回令牌

问题描述

我有以下登录方法:

public function index(Request $request)
    {
        $request->validate([
            'email'       => 'required|email',
            'password'    => 'required',
            'device_name' => 'required'
        ]);

        $user = User::where('email', $request->email)->first();

        if (! $user || ! Hash::check($request->password, $user->password)) {
            throw ValidationException::withMessages([
                'email' => ['The provided credentials are incorrect.'],
            ]);
        }

        return response([
            'user'          => $user,
            'session_token' => $user->createToken($request->device_name)->plainTextToken,
        ], 201);
    }

此方法有效,返回令牌的格式类似于:

5|5lR3o7vEzlm6iOieKxTW2pco1msKLN0WHb0Ozxv2relwIB4eJetyPnADOu6Dp0griYY7U1YZJEAqk6Ct

当我尝试使用带有该令牌的auth:sanctum后面的路由时,我得到了

401 - "message": "Unauthenticated."

我正在使用最新的 Laravel 7。配置:

.env

APP_URL=http://localhost:9099
SANCTUM_STATEFUL_DOMAINS=http://localhost:9099

cors.php

'paths' => ['api/v1/*'],

我正在使用 Insomnia 进行 API 测试。login 方法以及任何不使用auth:sanctum中间件的路由都有效。知道我在这里做错了什么吗?

失眠设置

标签: laravellaravel-sanctum

解决方案


我将到期时间设置为null并且我一直在获取401 errors. 当我将其更改为60*24*30有效时。


推荐阅读