如何使用 Go 和 http 包删除 cookie?

jjg*_*mes 4 cookies http go

用户在使用 http.SetCookie 访问时设置了一个 cookie,如下所示:

expire := time.Now().Add(7 * 24 * time.Hour)
cookie := http.Cookie{
    Name:    "name",
    Value:   "value",
    Expires: expire,
}
http.SetCookie(w, &cookie)
Run Code Online (Sandbox Code Playgroud)

如果我想稍后删除此 cookie,那么正确的方法是什么?

Cer*_*món 7

您删除 cookie 的方式与设置 cookie 的方式相同,但时间在过去:

expire := time.Now().Add(-7 * 24 * time.Hour)
cookie := http.Cookie{
    Name:    "name",
    Value:   "value",
    Expires: expire,
}
http.SetCookie(w, &cookie)
Run Code Online (Sandbox Code Playgroud)

请注意-7.

您还可以将 MaxAge 设置为负值。因为旧版本的 IE 不支持 MaxAge,所以务必将 Expires 设置为过去的时间。