NGiNX auth_request set-cookie供下游使用?

时间:2018-01-09 21:46:38

标签: nginx auth-request

尝试在auth_request调用中创建cookie并将其传递给下游以供立即使用。到目前为止我能管理的最好的事情是在调用完成后在浏览器中设置cookie:

auth_request /blah/blah;
auth_request_set $saved_set_cookie $upstream_http_set_cookie;
add_header Set-Cookie $saved_set_cookie;

在下一个请求之前,该cookie不会在下游提供。 我可以通过执行以下操作来获取新的cookie,但是将它放在新的标题名称中并不理想:

auth_request_set $saved_cookie_try_2 $upstream_cookie_COOKIE_NAME;
proxy_set_header X-Fake-Cookie $saved_cookie_try_2;

这允许cookie值立即作为自定义标题提供,但不如仅具有cookie那么方便。

有什么建议吗?

更新1:

我能够添加到现有的Cookie或完全替换为:

proxy_set_header Cookie "$http_cookie; $saved_set_cookie";
or
proxy_set_header Cookie "$saved_set_cookie";

我无法找到设置或替换单个cookie的方法。

更新2:

我可以使用NGiNX地图功能完成这项任务:

map $http_cookie $auth_header {
  default "";
  "~*yourCookieName=(?<variable>[^;]+)" "the value you wanna set 
  $variable";
}

从这里开始:https://stackoverflow.com/a/45208334/1502561

0 个答案:

没有答案