Laravel-注销路线是公共的吗

Laravel-注销路线是公共的吗,laravel,single-page-application,logout,laravel-sanctum,Laravel,Single Page Application,Logout,Laravel Sanctum,我想将laravel\sanctum与SPA身份验证一起使用,其中laravel是后端api,Vue是前端SPA。我不知道手册上怎么说,但我遇到了一个问题: 当我在api.php中退出时 Route::post('/logout', [AuthController::class, 'logout']) 位于中间件('auth:sanctum')由于以下错误,我无法注销用户: Method Illuminate\Auth\RequestGuard::logout does not exist.

我想将laravel\sanctum与SPA身份验证一起使用,其中laravel是后端api,Vue是前端SPA。我不知道手册上怎么说,但我遇到了一个问题:
当我在api.php中退出时

Route::post('/logout', [AuthController::class, 'logout'])
位于中间件('auth:sanctum')由于以下错误,我无法注销用户:

Method Illuminate\Auth\RequestGuard::logout does not exist.    
其中注销功能为:

Auth::logout();
但是当我删除中间件(“auth:sanctum”)时,注销功能非常有效,用户可以注销。
问题是:是否应该保护注销路径


另外:对于那些想说:使用Auth::logout('web')的人来说,这不起作用,因为用户仍在登录。

您必须明确使用guard。 使用自定义防护更改web:

Auth::guard('web')->logout();

您必须显式地使用guard。 使用自定义防护更改web:

Auth::guard('web')->logout();

当我使用这个如果不起作用,使用仍然是登录!或者解释我应该如何使用自定义(而不是“web”)防护检查这个我不明白为什么我必须使用自定义防护。Sanctum auth是否应该保护注销路径?@MaximStogny您不应该使用自定义防护。如果您不保护注销路径,将不会有任何安全问题。当我使用此方法时,如果不起作用,则使用仍在登录!或者解释我应该如何使用自定义(而不是“web”)防护检查这个我不明白为什么我必须使用自定义防护。Sanctum auth是否应该保护注销路径?@MaximStogny您不应该使用自定义防护。如果不保护注销路由,则不会出现安全问题