vue.js Laravel sancutum SPA身份验证注销不起作用

gz5pxeao  于 2022-12-14  发布在  Vue.js
关注(0)|答案(4)|浏览(138)

我在我的Vue项目中使用laravel sanctum SPA认证。一切都运行良好,但即使在注销后

Auth::logout()

我仍然能够从中间件内部的API路由获取数据

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

我应该无法得到数据后注销。它应该显示401未认证,但它不是这样的情况。如何解决这个问题。我已经被困在这里3天。我遵循laravel文档和其他教程,以及,但每一个注销一样,我没有。

ego6inou

ego6inou1#

请使用Auth::guard('web')->logout();而不是Auth::logout()。查看SPA Log out issue

2w3rbyxf

2w3rbyxf2#

要注销,用户只需在注销功能中执行此操作即可删除所有用户令牌

public function logout(Request $request) {
auth()->user()->tokens()->delete();
}

或者使用此命令仅删除活动令牌

$request->user()->currentAccessToken()->delete();
b4qexyjb

b4qexyjb3#

现在对我有用的是:auth('sanctum')->user()->tokens()->delete();

olhwl3o2

olhwl3o24#

要注销特定用户,您需要指定该用户。

// Revoke a specific user token
Auth::user()->tokens()->where('id', $id)->delete();

// Get user who requested the logout
$user = request()->user(); //or Auth::user()
// Revoke current user token
$user->tokens()->where('id', $user->currentAccessToken()->id)->delete()

相关问题