Je suis nouveau chez Nginx et j'espère obtenir de l'aide.
Je souhaite extraire certaines données (certains champs définis par mes PHP) du cookie du navigateur dans nginx afin de pouvoir les enregistrer. Si possible, je veux le faire simplement en modifiant la configuration de nginx.
Tout pointeur/aide serait grandement apprécié.
Vous pouvez accéder aux valeurs des cookies en utilisant le $cookie_COOKIE_NAME_GOES_HERE
variable.
Voir Documentation Nginx
Voici un exemple pour extraire un cookie HttpOnly et le transmettre à une API RESTful en tant que jeton porteur 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/;
}
}
}
Si quelqu'un utilise la réponse précédente avec plusieurs cookies différents dans la réponse, l'expression correcte est:
map $http_cookie $auth_header {
default "";
"~*OAuth.AccessToken=(?<token>[^;]+)" "Bearer $token";
}
ou usage plus général:
map $http_cookie $auth_header {
default "";
"~*yourCookieName=(?<variable>[^;]+)" "the value you wanna set $variable";
}