4143920

1354 经验值

超过时间 触发的应该是 setAuthUser 里面的 catch(error => {

            dispatch('refreshToken')
        })

跳过了 Cookie 而且auth_id 不懂在哪里体现

我把logout 改成 这样 可以了

public function logout()

{
    $user = auth()->guard('api')->user();

    $accessToken = $user->token();

    app('db')->table('oauth_refresh_tokens')
        ->where('access_token_id',$accessToken->id)
        ->update([
            'revoked' => true,
        ]);
    
    $accessToken->revoke();

    return response()->json([
        'message' => 'logout!'
    ],204)->cookie('refreshToken', '', 0, null);
}

找到问题了....在前端,token在发请求之前就删除了,但是logout发送请求之后还是有存在旧cookie refreshToken

Route::middleware('auth:api')->post('/logout','Auth\LoginController@logout');
这样吗? 好像还是不行 提示Unauthenticated

/user 可以取到值 在logout的controller里 通过auth不行

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

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

    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],
    ],
'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'password_resets',
            'expire' => 60,
        ],
    ],

怎么携带 access_token 发起请求呢

我自己打错了 =..= 都应该是post

api.php 里面是 post logout 在其他地方是 get logout 没有在tokenproxy中进行logout()