为了账号安全,请及时绑定邮箱和手机立即绑定

Cookie 创建后被删除?

Cookie 创建后被删除?

Go
Cats萌萌 2023-08-07 16:40:26
我正在创建一个会话,会话/cookie 创建后它会立即消失session, err := r.Cookie("session-id")if err != nil {session = &http.Cookie{                    Name:   "session-id",                    Value:  sessionID.String(), //uuid                    MaxAge: 0,                }http.SetCookie(w, session)}我不确定它是否被删除,但是在创建 cookie 的那一刻,它会立即从 google chrome(应用程序/cookies)中消失。这是一个问题,因为当我转到另一条路径时无法检测到 cookie。
查看完整描述

2 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

这是一个问题,因为当我转到另一条路径时无法检测到 cookie。


如果set cookie响应头中没有设置path参数,则客户端将cookie的路径设置为请求路径。仅当 cookie 的路径是请求路径的路径前缀时,客户端才会向服务器发送 cookie。


要使 cookie 对所有路径可用,请将路径设置为“/”。


session = &http.Cookie{

                Name:   "session-id",

                Value:  sessionID.String(), //uuid

                Path: "/",

            }

(因为整数的零值为 0,所以无需指定 MaxAge 值)。


查看完整回答
反对 回复 2023-08-07
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

根据MDN:

Max-Age:cookie 过期之前的秒数。零或负数将使 cookie 立即过期

当查看SetCookie调用 cookieString()方法的 func 的源代码时,我们可以在第 208 行看到您的 cookie 年龄 0 不会被写入请求 - 您的 cookie 应该被接受。

可能还有其他因素导致此 cookie 在用户代理端无效;服务器端似乎没问题。当您尝试不同的浏览器(例如 Firefox)时会发生什么?


查看完整回答
反对 回复 2023-08-07
  • 2 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信