You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Sanctum登出功能报错:Call to a member function currentAccessToken() on null 解决方法咨询

Laravel Sanctum登出功能报错:Call to a member function currentAccessToken() on null 解决方法咨询

大家好,我在做Laravel Sanctum的登出功能时遇到了问题,想请大家帮忙看看怎么解决。

我写了一个登出函数,本意是用来吊销用户的当前访问token,但在Postman中把Bearer 6|4dc2p1jSWxXVdHPL8vHFK1x7SPSFysl0nOcVH78Ye3c75982填入Authorization请求头发送请求后,得到的响应是:

'message': 'Call to a member function currentAccessToken() on null'

以下是我的相关代码:

UserController.php 中的登出方法

<?php

namespace App\Http\Controllers\API;

use App\Helpers\ResponseFormatter;
use App\Http\Controllers\Controller;
use App\Models\User;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\Rules\Password;
use Livewire\Attributes\Validate;

class UserController extends Controller
{
    // 其他方法省略...

    /**
    * Logout a user by revoking the current access token.
    *
    * @param Request $request The HTTP request
    * @throws Some_Exception_Class description of exception
    * @return Some_Return_Value
    */
    public function logout(Request $request)
    {
        $token = $request->User()->currentAccessToken()->delete();
        return ResponseFormatter::success($token, 'Token Revoked');
    }
}

routes/api.php 路由配置

<?php

use App\Http\Controllers\API\ProductCategoryController;
use App\Http\Controllers\API\ProductController;
use App\Http\Controllers\API\UserController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Laravel\Jetstream\Rules\Role;

/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "api" middleware group. Make something great!
|
*/

Route::middleware('auth:sanctum')->group(function(){
    Route::get('user',[UserController::class,'fetch']);
    Route::post('user',[UserController::class,'updateProfile']);
});

Route::post('logout',[UserController::class,'logout']);
Route::get('products',[ProductController::class,'all']);
Route::get('categories',[ProductCategoryController::class,'all']);
Route::post('register',[UserController::class,'register']);
Route::post('login',[UserController::class,'login']);

我的需求是:希望能在Postman中输入指定的token后,直接完成该token的吊销/删除操作。请问我哪里写错了吗?应该怎么调整才能解决这个问题呢?

备注:内容来源于stack exchange,提问作者NAUFAL_ ARZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 10:32:57