Обратный прокси-повар ie Проблема с доменом - PullRequest
0 голосов
/ 13 февраля 2020

Попытка обдумать эту проблему, если у кого-то есть какие-то идеи, это было бы удивительно.

По сути, у меня есть 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 хоста

Заранее спасибо:)

...