我确实需要帮助来完成我尝试做的一件小事。我尝试在我的 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
在所有这些线程中,使用的方法应该有效,但不适合我。我是否忽略了什么?
我感谢每一个帮助!