#javascript #node.js #authentication #nginx #cookies
#javascript #node.js #аутентификация #nginx #файлы cookie
Вопрос:
У меня есть три разных приложения, работающих за обратным прокси-сервером NGINX.
Все они имеют графический интерфейс входа, который использует один и тот же API аутентификации. Аутентификация основана на файлах cookie.
Теперь моя проблема в том, что пути к файлам cookie устанавливаются по-разному в зависимости от того, какой графический интерфейс используется для входа в систему.
API аутентификации фактически устанавливает путь к cookie в / , но я предполагаю, что это прокси NGINX, который перезаписывает его в зависимости от местоположения.
Есть ли способ задать путь к файлам cookie в / , независимо от того, какой графический интерфейс используется?
Вот как выглядит моя конфигурация NGINX:
http {
server {
listen 80;
server_name localhost;
location = / {
rewrite / /admin;
}
location /admin/ {
proxy_pass http://localhost:9001/;
}
location /app/ {
proxy_pass http://localhost:3100/;
}
location / {
proxy_pass http://localhost:3000/;
}
}
}
Правка 1:
Я попытался добавить
proxy_cookie_path ~*^/.* /;
как описано здесь, но это не помогло. Путь к файлу cookie по-прежнему остается /admin или /app
Ответ №1:
Директива proxy_cookie_path, безусловно, является решением описанной проблемы.
(Я только что узнал, что мой файл cookie был установлен не из серверного API, а на стороне клиента. Итак, проблема была не в конфигурации NGINX.)
Итак, для протокола:
proxy_cookie_path ~*^/.* /;
должно сработать, если файл cookie установлен со стороны сервера.
Для получения дополнительной информации о директиве смотрите здесь.
Комментарии:
1. Смущен ответом. Вы указываете «наверняка есть решения для описанной проблемы». и в конце «должно сработать, если файл cookie установлен со стороны сервера». Но перед этим вы заявляете «мой файл cookie не был установлен со стороны сервера». Значит, решение не является ответом на вашу проблему? У меня та же проблема, и «proxy_cookie_path ~ * ^ /.* /;» не решает ее. Хотите уточнить?