Статус 419 в проекте Laravel с балансировщиком нагрузки - PullRequest
0 голосов
/ 16 января 2019

Я использую балансировщик нагрузки Digital Ocean, чтобы разделить все запросы на 2 отдельных сервера. На обоих серверах запущено одно и то же приложение Laravel, но когда эти два сервера подключены к сети и я пытаюсь сделать пост-запрос, иногда я получаю статус 419, а иногда 200, но когда 1 сервер отключен, запросы работают нормально

1 Ответ

0 голосов
/ 16 января 2019

Полагаю, вы используете драйвер сеанса по умолчанию, а именно файлы. Из-за этого ваши сеансы установлены на одном сервере, а другой сервер не знает об этом сеансе. Набор токенов csrf в форме создается и проверяется с использованием текущего сеанса для посетителя, если этот запрос будет отправлен на другой сервер, вы получите ошибку 419, поскольку этот сервер не знает о сеансе.

Чтобы решить эту проблему, вы должны использовать драйвер сеанса, который может использоваться несколькими серверами, такими как database, memcached или redis.

...