Попытка обдумать эту проблему, если у кого-то есть какие-то идеи, это было бы удивительно.
По сути, у меня есть PWA, работающий на localhost и отправляющий запросы на api.domain.com, что является обратным прокси. Кажется, это работает нормально и возвращает правильные ответы, однако Set-Cook ie работает из входа в систему, но с доменом api.domain.com, что означает, что после обновления моего клиента localhost больше не видит его.
map $http_origin $cors_origin_header {
default "";
"~(^|^http:\/\/)(localhost$|localhost:[0-9]{1,4}$)" "$http_origin";
"https://test.domain.com" "$http_origin";
"~(^|^http:\/\/)(mylocaldomain.com$|www.mylocaldomain.com:[0-9]{1,4}$)" "$http_origin";
}
map $http_origin $cors_cred {
default "";
"~(^|^http:\/\/)(localhost$|localhost:[0-9]{1,4}$)" "true";
"https://test.domain.com" "true";
"~(^|^http:\/\/)(mylocaldomain.com$|www.mylocaldomain.com:[0-9]{1,4}$)" "true";
}
log_format upstream_logging '[$time_local] $remote_addr - $remote_user - $server_name to: $upstream_addr: $request upstream_response_time $upstream_response_time msec $msec request_time $request_time ';
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name api.domain.co.uk;
add_header 'Access-Control-Allow-Origin' $cors_origin_header always;
add_header 'Access-Control-Allow-Credentials' $cors_cred;
add_header 'Access-Control-Allow-Methods' "GET, POST, OPTIONS, HEAD";
add_header 'Access-Control-Allow-Headers' "Authorization, Origin, X-Requested-With, Content-Type, Accept";
location / {
proxy_pass https://www.actualapidomain.com;
access_log /var/log/nginx/api_logging.log upstream_logging;
}
}
Поэтому приложение, работающее на локальном хосте или www.localdomain.com, отправит запрос на api.domain.co.uk (обратные прокси www.actualapidomain.com).
Ответ от www.actualapidomain.com включает set-cook ie, у которого, по-видимому, нет запеченного домена, но когда оно достигает моего приложения localhost, для cook ie устанавливается домен api.domain.co.uk, что означает, что он не будет использоваться в будущие запросы.
Нужно ли перехватывать и настраивать повара ie на обратном прокси-сервере, чтобы изменить домен на домен запрошенного URL-адреса? Если так, как бы я go сделал это?
- Обновление -
Я пытался добавить домен в Set-Cook ie со следующим
proxy_cookie_path ~^(.+)$ "$1; domain=localhost";
, но кажется, что в ответе с этим атрибутом домена «этот set-cook ie» отображается недопустимое значение в отношении текущего URL хоста
Заранее спасибо:)