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
相关产品推荐
相关产品推荐

