无法在golang中获取cookie过期时间
Can't get cookie expiration time in golang
我正在设置一个新的 cookie
func f1(w http.ResponseWriter, r *http.Request) {
...
expire := time.Now().AddDate(0, 1, 0)
cookie := http.Cookie{"token", token, "/", "domain", expire, expire.Format(time.UnixDate), 86400, true, true, "token=" + token, []string{"token=" + token}}
http.SetCookie(w, &cookie)
那我就去拿
func f2(w http.ResponseWriter, r *http.Request) {
...
cookie, err := r.Cookie("token")
fmt.Println(cookie.Value)
fmt.Println(cookie.Expires)
输出
valid_token_string
0001-01-01 00:00:00 +0000 UTC
Value 与我设置的相同,但 Expires 为空。
为什么?
HTTP 就是这样工作的; expires 属性仅与 Set-Cookie 响应 header 一起发送,而不与 Cookie 请求 header 一起发送。 Cookie 请求 header 仅包含 cookie 的名称和值,不包含任何其他元数据。
如果您想查询过期时间,您应该将其作为不同的 cookie 来处理。
我正在设置一个新的 cookie
func f1(w http.ResponseWriter, r *http.Request) {
...
expire := time.Now().AddDate(0, 1, 0)
cookie := http.Cookie{"token", token, "/", "domain", expire, expire.Format(time.UnixDate), 86400, true, true, "token=" + token, []string{"token=" + token}}
http.SetCookie(w, &cookie)
那我就去拿
func f2(w http.ResponseWriter, r *http.Request) {
...
cookie, err := r.Cookie("token")
fmt.Println(cookie.Value)
fmt.Println(cookie.Expires)
输出
valid_token_string
0001-01-01 00:00:00 +0000 UTC
Value 与我设置的相同,但 Expires 为空。 为什么?
HTTP 就是这样工作的; expires 属性仅与 Set-Cookie 响应 header 一起发送,而不与 Cookie 请求 header 一起发送。 Cookie 请求 header 仅包含 cookie 的名称和值,不包含任何其他元数据。
如果您想查询过期时间,您应该将其作为不同的 cookie 来处理。