Laravel не устанавливает cookie-файл XSRF-Token на реальном сервере
Я создал приложение с Laravel 5.7.16 и Angular2, и все отлично работает на моем локальном хосте.
Однако на живом сервере я получил "419 ошибку" при отправке почтовых запросов. После некоторых исследований я пришел к выводу, что это, вероятно, связано с проблемой с XSRF-TOKEN. Затем, сравнивая то, что происходило на моем локальном хосте и на работающем сервере, я заметил, что работающий сервер не устанавливает cookie XSRF-TOKEN при первоначальном запросе.
Я не устанавливаю явно XSRF-TOKEN в моем почтовом запросе HTTP Angular2, но, как я понял, Angular2 делает это автоматически, если файл cookie XSRF-TOKEN изначально устанавливается приложением на стороне сервера.
У кого-нибудь есть идеи, как мне это решить?
Изменить: Я только что попытался добавить один из моих маршрутов публикации приложения в массив $ кроме VerifyCsrfToken, и это работает. Однако это скорее обходной путь, нежели реальное решение. Интересно, что после выполнения "разрешенного" маршрута возвращается XSRF-TOKEN, и все остальные маршруты работают. Я думаю, что это подтверждает идею о том, что XSRF-TOKEN не возвращается при начальной загрузке приложения. С чего бы это?
Спасибо.
1 ответ
Здравствуйте, у меня была такая же проблема на моем локальном компьютере. Файл cookie XSRF-TOKEN не устанавливался в браузере. Я попробовал выполнить следующие действия, и проблема была решена.
- Дайте разрешение папкам.
sudo chmod -R 777 storage bootstrap/cache
- Очистите кеш конфигурации и приложений.
php artisan cache:clear && php artisan config:clear
Попробуйте очистить кеш Laravel
PHP кеш ремесленника: очистить
А также очистите куки браузера, чтобы убедиться, что сеанс еще не сохранен?