相关疑难解决方法(0)

为什么我不能设置多个cookies

我正在尝试设置多个 cookie,但它不起作用:

if type(ngx.header["Set-Cookie"]) ~= "table" then
    ngx.header["Set-Cookie"] = {}
end
table.insert(ngx.header["Set-Cookie"], "Cookie1=abc; Path=/")
table.insert(ngx.header["Set-Cookie"], "Cookie2=def; Path=/")
table.insert(ngx.header["Set-Cookie"], "Cookie3=ghi; Path=/")
Run Code Online (Sandbox Code Playgroud)

在客户端,我没有收到任何 cookie。

openresty

5
推荐指数
1
解决办法
1917
查看次数

使用 NGINX 从缓存响应中删除标头

我在几个 Flask 应用程序前面将 NGINX 作为反向代理运行。

我想为注销的用户实现缓存。

Flask-loginSet-Cookie为每个响应添加一个标头,即使对于匿名用户也是如此,因为它包含一个带有 CSRF 令牌的会话 cookie。这意味着我正在使用proxy_ignore_headers Set-Cookie;以确保 NGINX 实际缓存了这些内容(它不会缓存并使用Set-Cookie标头进行响应)。

我在应用程序中设置了一个单独的 cookie 来指示用户的登录/退出状态,并使用它来确定是否使用缓存。这很好用。

问题是注销用户的缓存响应包含Set-Cookie设置会话 cookie的标头。这个会话 cookie 被提供给任何命中缓存的请求,最终导致不同的用户收到相同的 CSRF 令牌。

我想阻止将Set-Cookie标头存储在缓存中,或者在从缓存发送到客户端时删除/覆盖它。

我试过设置proxy_hide_headers Set-Cookie从缓存的响应中删除它,但也从该应用程序的响应中删除它。所以没有人可以登录。这很糟糕。

感觉应该有一个非常简单的解决方案,无论我谷歌多么努力,我都能找到它。

任何帮助表示赞赏。

python cookies caching nginx response-headers

5
推荐指数
1
解决办法
757
查看次数

标签 统计

caching ×1

cookies ×1

nginx ×1

openresty ×1

python ×1

response-headers ×1