В моем Laravel 7 бэкэнде у меня есть URL-адрес api, например:
Route::group(['namespace' => 'Api', 'middleware' => ['auth:sanctum']], function(){
Route::post('logout/all', 'Auth\LoginController@logoutAll');
Route::post('logout', 'Auth\LoginController@logout');
Route::put('profile/{profile}', 'ProfileController@update');
});
Маршруты / выход из системы и / профиль / 1 работают нормально, в то время как маршрут / выход / все выдает ошибку:
{
"error": "Unauthenticated"
}
Токен, который я использую, правильный, потому что я могу использовать его для других маршрутов, и он работает. Конечно, я не вызвал / logout перед тем, как попробовать /logout/all.
Я попытался изменить функцию контроллера logoutAll, установив для него значение «logout»:
Route::group(['namespace' => 'Api', 'middleware' => ['auth:sanctum']], function(){
Route::post('logout/all', 'Auth\LoginController@logout');
Route::post('logout', 'Auth\LoginController@logout');
Route::put('profile/{profile}', 'ProfileController@update');
});
Таким образом это работает, но вызывает ту же функцию. Это код функции:
public function logout(Request $request)
{
Auth::user()->tokens()->where('id', Auth::user()->currentAccessToken()->id)->delete();
return response()->json(['data' => 'User logged out.'], 200);
}
public function logoutAll(Request $request)
{
//do nothing
return response()->json(['data' => 'User loggedAll out.'], 200);
}
Помогите мне, пожалуйста.
ОБНОВЛЕНИЕ
Если я использую команду CURL, это вывод:
Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException: The POST method is not supported for this route. Supported methods: GET, HEAD. in file /Applications/MAMP/htdocs/test-server/vendor/laravel/framework/src/Illuminate/Routing/AbstractRouteCollection.php on line 117
#0 /Applications/MAMP/htdocs/test-server/vendor/laravel/framework/src/Illuminate/Routing/AbstractRouteCollection.php(103): Illuminate\Routing\AbstractRouteCollection->methodNotAllowed(Array, 'POST')
#1 /Applications/MAMP/htdocs/test-server/vendor/laravel/framework/src/Illuminate/Routing/AbstractRouteCollection.php(40): Illuminate\Routing\AbstractRouteCollection->getRouteForMethods(Object(Illuminate\Http\Request), Array)
#2 /Applications/MAMP/htdocs/test-server/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php(162): Illuminate\Routing\AbstractRouteCollection->handleMatchedRoute(Object(Illuminate\Http\Request), NULL)
...