Как использовать Postman для запроса Laravel $ POST

Как я могу попробовать отправить запрос post в приложение Laravel с почтальоном?

обычно Laravel имеет csrf_token что мы должны пройти с запросом POST / PUT. Как я могу получить и отправить это значение в почтальона? Возможно ли это вообще без отключения защита CSRF?

4 ответов


Edit:

Ах, подождите, я неправильно понял вопрос. Вы хотите сделать это, не выключая защиту CSRF? Как сказал Бхарат Геледа: вы можете сделать маршрут, который возвращает только токен и вручную скопировать его в _token поле в postman.

но я бы рекомендовал исключить ваши вызовы api из защиты CSRF, как показано ниже, и добавить некоторую аутентификацию API позже.

какая версия laravel вы бежать?

что Laravel 5.2 и выше:

С 5.2 токен CSRF требуется только на маршрутах с web промежуточное. Поэтому поместите свои маршруты api вне группы с web промежуточное.

см. заголовок "файл маршрутов по умолчанию" в документация для получения дополнительной информации.

фреймворк Laravel 5.1 и 5.2:

вы можете исключить маршруты, которые не должны иметь защиту CSRF в VerifyCsrfToken middleware нравится это:

class VerifyCsrfToken extends BaseVerifier
{
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        'api/*',
    ];
}

см. заголовок "исключение URI из защиты CSRF"документация для получения дополнительной информации.


Если вы храните свои сеансы в Cookies, вы можете захватить Cookie из запроса auth в инструментах разработчика.

enter image description here

скопируйте и вставьте этот файл Cookie в заголовок ваших запросов POSTMAN или Paw.

enter image description here

этот подход позволяет ограничить тестирование API текущим сеансом.


1.Вы можете создать новый маршрут для отображения токена csrf с помощью контроллера с помощью функции ниже. (Используйте запрос Get на маршруте)

   public function showToken {
      echo csrf_token(); 

    }

2.Выберите вкладку тело на postman, а затем выберите x-www-form-urlencoded.
3.Скопируйте токен и вставьте в postman значение ключа с именем _token.
4.Выполните запрос post на URL / Endpoint


в laravel, 5.3. Перейти к app/Http/Kernel.php найти middlewareGroups затем прокомментируйте VerifyCsrfToken. Потому что он выполняет все промежуточное ПО перед обслуживанием вашего запроса.

protected $middlewareGroups = [
            'web' => [
                \App\Http\Middleware\EncryptCookies::class,
                \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
                \Illuminate\Session\Middleware\StartSession::class,
                \Illuminate\View\Middleware\ShareErrorsFromSession::class,
               ***// \App\Http\Middleware\VerifyCsrfToken::class,***
                \Illuminate\Routing\Middleware\SubstituteBindings::class,
            ],

            'api' => [
                'throttle:60,1',
                'bindings',
            ],
        ];