I'm doing authorization using laravel:sanctum for the API. But, when calling the logout() method, I get the following error: Call to a member function tokens() on null. Please help me get rid of this error
AuthController
public function auth(UserLoginRequest $request){ $user = User::query()->where('login', $request->get('login'))->first(); if (!$user || !Hash::check($request->get('password'), $user->password)) { return response()->json(['message'=>'Попыткавходанеудалась'], 400); } $token = $user->createToken('api_token')->plainTextToken; $user->api_token = $token; $user->save(); return response()->json(['message'=>$user->api_token], 200); } public function logout(Request $request) { $request->user()->tokens()->delete(); return response()->json(['message' => 'Вывышлиизсистемы'], 200); }
api.php
Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user();});Route::middleware('auth:sanctum')->get('user', function (UserLoginRequest $request) { return response()->json(['login' => $request->user()->login]);});Route::post('auth', [AuthController::class, 'auth']);Route::post('authStore', [AuthController::class, 'store']);Route::get('authLogout', [AuthController::class, 'logout'])->middleware('auth:sanctum');Route::get('application/{id}', [ApplicationController::class, 'showById']);Route::get('application', [ApplicationController::class, 'show']);Route::post('applicationStore', [ApplicationController::class, 'store']);Route::post('applicationDelete', [ApplicationController::class, 'delete']);Route::post('userDelete/{user}', [UserController::class, 'delete']);Route::post('userStore', [UserController::class, 'store']);Route::post('review', [ReviewController::class, 'show']);Route::post('reviewCreate', [ReviewController::class, 'create']);