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