Cookie 创建后被删除?

我正在创建一个会话,会话/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。


Cats萌萌
浏览 127回答 2
2回答

郎朗坤

这是一个问题,因为当我转到另一条路径时无法检测到 cookie。如果set cookie响应头中没有设置path参数,则客户端将cookie的路径设置为请求路径。仅当 cookie 的路径是请求路径的路径前缀时,客户端才会向服务器发送 cookie。要使 cookie 对所有路径可用,请将路径设置为“/”。session = &http.Cookie{                Name:   "session-id",                Value:  sessionID.String(), //uuid                Path: "/",            }(因为整数的零值为 0,所以无需指定 MaxAge 值)。

拉风的咖菲猫

根据MDN:Max-Age:cookie 过期之前的秒数。零或负数将使 cookie 立即过期当查看SetCookie调用 cookieString()方法的 func 的源代码时,我们可以在第 208 行看到您的 cookie 年龄 0 不会被写入请求 - 您的 cookie 应该被接受。可能还有其他因素导致此 cookie 在用户代理端无效;服务器端似乎没问题。当您尝试不同的浏览器(例如 Firefox)时会发生什么?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go