小编Tar*_*nis的帖子

Laravel 圣所 | 删除当前用户令牌不起作用

我确实需要帮助来完成我尝试做的一件小事。我尝试在我的 laravel / Vue 设置中为一个用户使用并发的 individual_access_tokens 。一切工作正常,除了一件事之外,我想在用户注销时通过其 id 删除一个令牌。通过一个用户的登录,我为他们创建一个personal_access_token。注销后,应删除该特定的 access_token。

现在在我的注销方法中,我删除了所有令牌。这工作正常,但是当删除一个特定的令牌(应该有效)时,我总是收到此方法不存在的错误:

public function logout(Request $request){
    
   Auth::guard('web')->logout();
    
   // First try: auth()->user()->currentAccessToken()->delete();
   // Second try: $request->user()->token()->revoke();
   auth()->user()->tokens()->delete();
}
Run Code Online (Sandbox Code Playgroud)

错误:

LOG.error:调用未定义的方法 Laravel\Sanctum\TransientToken::delete() {"userId":18,"exception":{}}

api.php

Route::group(['middleware' => 'auth:sanctum'], function () {
    Route::post('/logout', [AuthController::class, 'logout']);
});
Run Code Online (Sandbox Code Playgroud)

我尝试了以下内容:

https://laracasts.com/discuss/channels/laravel/passport-how-can-i-manually-revoke-access-token (护照)https://laracasts.com/discuss/channels/laravel/deleting-users-注销时的护照令牌 https://divinglaravel.com/authentication-and-laravel-airlock https://laracasts.com/discuss/channels/laravel/spa-and-mobile-logout?page=1&replyId=698040

在所有这些线程中,使用的方法应该有效,但不适合我。我是否忽略了什么?

我感谢每一个帮助!

laravel vue.js laravel-sanctum

8
推荐指数
3
解决办法
2万
查看次数

标签 统计

laravel ×1

laravel-sanctum ×1

vue.js ×1