尝试在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";
}