创建后删除 Cookie?
Cookie deleted after creation?
我正在创建一个会话,session/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(Application/cookies) 中消失。这是一个问题,因为我在转到另一条路径时无法检测到 cookie。
将 MaxAge 设置为 0 意味着立即删除 cookie。
使用 -1 存储 cookie 直到浏览器退出。
根据MDN:
Max-Age: number of seconds until the cookie expires. A zero or negative number will expire the cookie immediately
在查看调用 cookie 的 String()
方法的 SetCookie
函数的源代码时,我们可以 see in line 208 您的 cookie 年龄 0 不会被写入请求 - 您的 cookie 应该被接受。
可能还有其他因素可能使此 cookie 从用户代理端无效;服务器端似乎没问题。当您尝试不同的浏览器(例如 Firefox)时会发生什么?
This is a problem because I can't detect the cookie when going to another path.
如果设置cookie响应头中没有设置路径参数,则客户端将cookie的路径设置为请求路径。当cookie的路径是请求路径的路径前缀时,客户端只向服务器发送cookie。
要使 cookie 可用于所有路径,请将路径设置为“/”。
session = &http.Cookie{
Name: "session-id",
Value: sessionID.String(), //uuid
Path: "/",
}
(因为整数的零值为0,所以不需要指定MaxAge值)。
我正在创建一个会话,session/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(Application/cookies) 中消失。这是一个问题,因为我在转到另一条路径时无法检测到 cookie。
将 MaxAge 设置为 0 意味着立即删除 cookie。
使用 -1 存储 cookie 直到浏览器退出。
根据MDN:
Max-Age: number of seconds until the cookie expires. A zero or negative number will expire the cookie immediately
在查看调用 cookie 的 String()
方法的 SetCookie
函数的源代码时,我们可以 see in line 208 您的 cookie 年龄 0 不会被写入请求 - 您的 cookie 应该被接受。
可能还有其他因素可能使此 cookie 从用户代理端无效;服务器端似乎没问题。当您尝试不同的浏览器(例如 Firefox)时会发生什么?
This is a problem because I can't detect the cookie when going to another path.
如果设置cookie响应头中没有设置路径参数,则客户端将cookie的路径设置为请求路径。当cookie的路径是请求路径的路径前缀时,客户端只向服务器发送cookie。
要使 cookie 可用于所有路径,请将路径设置为“/”。
session = &http.Cookie{
Name: "session-id",
Value: sessionID.String(), //uuid
Path: "/",
}
(因为整数的零值为0,所以不需要指定MaxAge值)。