Laravel post Api используется в качестве веб-маршрутов без токена csfr - PullRequest
0 голосов
/ 24 мая 2018

Это мой сценарий:

Нам нужно использовать некоторые методы 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, кто-нибудь может объяснить мне, чем вызвана эта ошибка?

...