Всем привет! У меня в проекте (Laravel 8 с установленным Laravel Sanctum, PHP 7.3) выходит ошибка "The GET method is not supported for this route" при использовании Laravel Sanctum. Api.php: PHP: Route::middleware('auth:sanctum')->get('/v1/cabinet/user', [CabinetController::class, 'userdata']); CabinetController: PHP: <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class CabinetController extends Controller { public function userdata(Request $request) { return $request->user(); } public function logout() { if (Auth()->check()) { Auth::user()->token()->delete(); return response([ 'message' => 'Пользователь разлогинен', ], 200); } } } Как исправить?
отправлял через Postman, ставил POST - та же ошибка. --- Добавлено --- Это нормально два Middleware: api и App\Http\Middleware\Authenticate:sanctum? PHP: +--------+-----------+--------------------------------------------------------+--------------------+------------------------------------------------------------+------------------------------------------+ | Domain | Method | URI | Name | Action | Middleware | +--------+-----------+--------------------------------------------------------+--------------------+------------------------------------------------------------+------------------------------------------+ | | GET|HEAD | / | | Closure | web | | | GET|HEAD | api/test | | App\Http\Controllers\IndexController@test | api | | | POST | api/v1/auth/login | login | App\Http\Controllers\Auth\LoginController@login | api | | | POST | api/v1/auth/register | | App\Http\Controllers\Auth\RegisterController@register | api | | | POST | api/v1/cabinet/logout | logout.api | App\Http\Controllers\CabinetController@logout | api | | | | | | | App\Http\Middleware\Authenticate:sanctum | | | GET|HEAD | api/v1/cabinet/user | | App\Http\Controllers\CabinetController@userdata | api | | | | | | | App\Http\Middleware\Authenticate:sanctum |
Да, нормально. Я в таких случаях прохожу отладчиком весь путь фреймворка по разбору роутов, обычно находится, кто мешает. Может к примеру порядок следования записей в routes.php/api.php мешать
Нашел решение: Я добавлял токен, только брал его из таблицы personal_access_tokens, а надо было тот который возвращает роут /login. На видео в конце показано как правильно добавить токен при роуте: