Это мой сценарий:
Нам нужно использовать некоторые методы Laravel API в том же веб-приложении, где они хранятся.(Я использую Laravel 5.5) У меня есть api-маршруты, используемые приложениями третьих сторон с Bearer Token, и они работают как шарм.Итак, я создал другую группу маршрутов, которая не использует промежуточное программное обеспечение «api: auth», а «auth» (с добавлением промежуточного программного обеспечения «web»).
Поставщик RouteService инициализация(метод вызывается в «map»):
protected function mapWebApiRoutes() {
Route::prefix('web_api')
->middleware('web')
->as('web_api.')
->namespace($this->namespace."\\API")
->group(base_path('routes/web_api.php'));
}
Объявление маршрутов:
Route::group(['prefix' => 'v1', 'middleware' => ["auth"]], function () {
// routes....
});
Итак, если я запустил «php artisan route: list»,он выводит маршруты вроде:
GET|HEAD | web_api/v1/controller | web_api. | ...\API\Controller@index | web,auth
POST | web_api/v1/controller/lists | web_api. | ...\API\Controller@lists | web,auth
Я добавил маршруты к VerifyCsrfToken , за исключением массива:
protected $except = [
"web_api/*"
];
Маршруты с методом GET работают так же хорошо, как и могуткогда пользователь вошел на нашу платформу (через промежуточное ПО для аутентификации), но POST-маршруты возвращают несанкционированную ошибку с этим телом:
{message: "Unauthenticated."}
Вопрос:
Учитывая, что я исключил эти маршруты из проверки CSRF, кто-нибудь может объяснить мне, чем вызвана эта ошибка?