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