Cookie 携带 Secure 属性导致浏览器不能在请求中携带 SessionID 的问题。

有 Secure 属性的 Cookie 意味着如果浏览器不是使用 HTTPS 与服务建立链接,那么这个 cookie 里的值不会随请求一起向服务器发送。要解决这个问题就需要在 Nginx 中把 cookie 中的 Secure 属性去掉再传给浏览器。解决办法如下:

 

map $sent_http_set_cookie $resp_cookie {
~*(?<CK_WITHOUT_SECURE>.+)Secure $CK_WITHOUT_SECURE;
}

server {
... ...
location /databoard/ {
... ...
more_set_headers 'Set-Cookie: $resp_cookie';

posted on 2022-12-26 21:35  zhangzongshan  阅读(434)  评论(0编辑  收藏  举报

导航