Laravel sanctum水疗中心身份验证注销不起作用

Laravel sanctum水疗中心身份验证注销不起作用,laravel,vue.js,single-page-application,laravel-sanctum,Laravel,Vue.js,Single Page Application,Laravel Sanctum,我在我的Vue项目中使用了laravel sanctum SPA认证。一切都很好,但即使在注销之后 Auth::logout() 我仍然能够从中间件内部的api路由获取数据 Route::middleware('auth:sanctum')->get('/user', function (Request $request) { return $request->user(); }); 我应该无法获得注销后的数据。它应该显示401未经验证,但不是这样。 如何解决这个问题。我

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

Auth::logout()
我仍然能够从中间件内部的api路由获取数据

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});
我应该无法获得注销后的数据。它应该显示401未经验证,但不是这样。
如何解决这个问题。我在这里被困了3天。我也遵循了laravel文档和其他教程,但每个人都像我一样注销。

要注销特定用户,需要指定用户

// 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()

请使用
Auth::guard('web')->logout()而不是
Auth::logout()
。查看

更干净的方式
$request->user()->currentAccessToken()->delete()
我使用的是SPA身份验证,而不是API令牌身份验证。这个答案可能适用于此。无论如何,感谢您的响应。
sanctum
是默认的保护吗?上面的路由是用API.php编写的,所以默认的保护是API@Lagbox。默认的保护是在配置
auth.php
中设置的。。。当使用auth函数时,如果您没有传递保护,它将使用默认。。。如果默认值不是
sanctum
,那么您可能在另一个guardOk上调用
注销
,那么您的意思是我应该在注销时通过sanctum guard?您的问题解决了吗?我也有同样的问题,postman的一切都很好,但是vue让我保持日志记录,即使我通过postman撤销了令牌