Nginx не пересылает файлы cookie laravel Sanctum csrf ⇐ Php
Nginx не пересылает файлы cookie laravel Sanctum csrf
Описание:
У меня есть веб-приложение, работающее в контейнере докеров, как показано ниже:
[*]Фронтенд: React [*]Бэкенд: PHP 8.2/Laravel 10 [*]Веб-сервер Nginx v1.25
Я использую Laravel Sanctum для обработки сеансов cookie.
Проблема:
Когда я нажимаю на конечную точку /sanctum/csrf-cookie, он возвращает 200 пустых ответов без установки сеанса cookie или заголовка Set-Cookie, будь то из интерфейса или почтальона.
Ожидаемый результат:
Он должен вернуть 204 ответа без содержимого и установить сеанс cookie с заголовком Set-Cookie.
Коды:
Файл конфигурации Nginx:
вышестоящий docker-backend { серверная часть; } сервер { слушай 80; слушай [::]:80; имя_сервера localhost; корень /var/www/html/public; add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; индекс index.php; кодировка utf-8; расположение / { proxy_pass http://docker-backend; proxy_set_header Хост $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-CSRF-TOKEN $cookie_csrf_token; proxy_set_header Файл cookie $cookie_session; try_files $uri $uri//index.php?$query_string; } error_page 404 /index.php; местоположение ~ \.php$ { add_header 'Access-Control-Allow-Origin' $http_origin; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS'; add_header 'Access-Control-Allow-Headers' '*'; Бэкэнд fastcgi_pass: 9000; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; включить fastcgi_params; } } Файл docker-compose.yml
услуги: # БЭКЭНД бэкэнд: строить: контекст: ./бэкэнд файл докеров: файл докеров имя_контейнера: серверная часть порты: - 9000:9000 объемы: - ./backend:/var/www/html зависит от: - mysql_db сети: приложение: псевдонимы: - бэкэнд # ВНЕШНИЙ ИНТЕРФЕЙС внешний интерфейс: строить: контекст: ./интерфейс файл докеров: файл докеров имя_контейнера: интерфейс телетайп: правда порты: - 5173:5173 объемы: - ./интерфейс:/интерфейс зависит от: - бэкэнд ссылки: - бэкэнд сети: - приложение # Нгинкс Нгинкс: изображение: nginx:alpine имя_контейнера: nginx перезапуск: если не остановлен телетайп: правда порты: - «8000:80» объемы: - ./backend:/var/www/html - ./backend/nginx/:/etc/nginx/conf.d/ сети: - приложение сети: приложение: водитель: мост Бэкэнд php Dockerfile :
ИЗ php:8.2-fpm-alpine3.19 RUN apk добавить libzip-dev ЗАПУСТИТЕ docker-php-ext-install pdo pdo_mysql zip ЗАПУСТИТЬ Curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer ЭКСПОЗИЦИЯ 9000 CMD ["php-fpm"] Я перепробовал все возможные конфигурации Nginx, которые нашел, и все они возвращают один и тот же ответ (у меня есть базовый опыт работы с Nginx)
Описание:
У меня есть веб-приложение, работающее в контейнере докеров, как показано ниже:
[*]Фронтенд: React [*]Бэкенд: PHP 8.2/Laravel 10 [*]Веб-сервер Nginx v1.25
Я использую Laravel Sanctum для обработки сеансов cookie.
Проблема:
Когда я нажимаю на конечную точку /sanctum/csrf-cookie, он возвращает 200 пустых ответов без установки сеанса cookie или заголовка Set-Cookie, будь то из интерфейса или почтальона.
Ожидаемый результат:
Он должен вернуть 204 ответа без содержимого и установить сеанс cookie с заголовком Set-Cookie.
Коды:
Файл конфигурации Nginx:
вышестоящий docker-backend { серверная часть; } сервер { слушай 80; слушай [::]:80; имя_сервера localhost; корень /var/www/html/public; add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; индекс index.php; кодировка utf-8; расположение / { proxy_pass http://docker-backend; proxy_set_header Хост $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-CSRF-TOKEN $cookie_csrf_token; proxy_set_header Файл cookie $cookie_session; try_files $uri $uri//index.php?$query_string; } error_page 404 /index.php; местоположение ~ \.php$ { add_header 'Access-Control-Allow-Origin' $http_origin; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS'; add_header 'Access-Control-Allow-Headers' '*'; Бэкэнд fastcgi_pass: 9000; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; включить fastcgi_params; } } Файл docker-compose.yml
услуги: # БЭКЭНД бэкэнд: строить: контекст: ./бэкэнд файл докеров: файл докеров имя_контейнера: серверная часть порты: - 9000:9000 объемы: - ./backend:/var/www/html зависит от: - mysql_db сети: приложение: псевдонимы: - бэкэнд # ВНЕШНИЙ ИНТЕРФЕЙС внешний интерфейс: строить: контекст: ./интерфейс файл докеров: файл докеров имя_контейнера: интерфейс телетайп: правда порты: - 5173:5173 объемы: - ./интерфейс:/интерфейс зависит от: - бэкэнд ссылки: - бэкэнд сети: - приложение # Нгинкс Нгинкс: изображение: nginx:alpine имя_контейнера: nginx перезапуск: если не остановлен телетайп: правда порты: - «8000:80» объемы: - ./backend:/var/www/html - ./backend/nginx/:/etc/nginx/conf.d/ сети: - приложение сети: приложение: водитель: мост Бэкэнд php Dockerfile :
ИЗ php:8.2-fpm-alpine3.19 RUN apk добавить libzip-dev ЗАПУСТИТЕ docker-php-ext-install pdo pdo_mysql zip ЗАПУСТИТЬ Curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer ЭКСПОЗИЦИЯ 9000 CMD ["php-fpm"] Я перепробовал все возможные конфигурации Nginx, которые нашел, и все они возвращают один и тот же ответ (у меня есть базовый опыт работы с Nginx)
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Конечная точка API не выполняет проверку токена CSRF в Sanctum – несоответствие токена CSRF
Anonymous » » в форуме Php - 0 Ответы
- 154 Просмотры
-
Последнее сообщение Anonymous
-