Как извлечь значение из 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/;
    }

  }

}
Другие вопросы по тегам