Ответ 1
Вы можете получить доступ к значениям cookie с помощью переменной $cookie_COOKIE_NAME_GOES_HERE
.
Я новичок в Nginx и надеюсь получить некоторую помощь.
Я хочу извлечь определенные данные (определенные поля, установленные моими скриптами PHP) из cookie cookie в nginx, чтобы я мог его зарегистрировать. Если возможно, я хочу сделать это, только изменив конфигурацию nginx.
Приветствуется любой указатель/справка.
Вы можете получить доступ к значениям cookie с помощью переменной $cookie_COOKIE_NAME_GOES_HERE
.
Вот пример, чтобы извлечь файл cookie HttpOnly и передать его на RESTful api в качестве маркера OAuth Bearer:
http {
map $http_cookie $auth_header {
default "";
"~*OAuth.AccessToken=(?<token>.+)" "Bearer $token";
}
server {
listen 443 ssl;
ssl_certificate /etc/nginx/certs/nginx.crt;
ssl_certificate_key /etc/nginx/certs/nginx.key;
proxy_set_header Authorization $auth_header;
location / {
proxy_pass https://rest-api-host.domain.com/;
}
}
}
Если кто-либо использует предыдущий ответ с несколькими различными куками в ответе, правильное регулярное выражение:
map $http_cookie $auth_header {
default "";
"~*OAuth.AccessToken=(?<token>[^;]+)" "Bearer $token";
}
или более общее использование:
map $http_cookie $auth_header {
default "";
"~*yourCookieName=(?<variable>[^;]+)" "the value you wanna set $variable";
}