Как извлечь некоторое значение из cookie в nginx
Я новичок в nginx и надеюсь получить некоторую помощь.
Я хочу извлечь определенные данные (определенные поля, установленные моими PHP-скриптами) из файла cookie браузера в nginx, чтобы я мог его зарегистрировать. Если возможно, я хочу сделать это, просто изменив конфигурацию nginx.
любой указатель / помощь были бы весьма признательны.
3 ответов
вы можете получить доступ к значениям cookie с помощью $cookie_COOKIE_NAME_GOES_HERE
переменной.
посмотреть Документация Nginx
вот пример извлечения файла cookie HttpOnly и передачи его в RESTful api в качестве токена носителя OAuth:
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";
}