Golang:SetCookie没有更新到期日

时间:2016-03-30 00:11:22

标签: go

我有以下代码并且工作正常:

func main() {
    http.HandleFunc("/", samplePage)
    _ = http.ListenAndServe(":8080", nil)
}

func samplePage(w http.ResponseWriter, r *http.Request) {
    expiration := time.Now().Add(time.Hour)
    cookie := http.Cookie{Name: "username", Value: "XXX", Expires: expiration}
    http.SetCookie(w, &cookie)

    fmt.Fprintln(w, cookie.Value)
    fmt.Fprintln(w, cookie.Expires)
}  

它给了我

XXX
2016-03-29 17:57:02.7077906 -0700 PDT

但是,如果我打印以下内容,则无法正常工作:

cookie2, err := r.Cookie("username")
checkErr(err) //no error is found
fmt.Fprintln(w, cookie2.Value)
fmt.Fprintln(w, cookie2.Expires)

这给了我

XXX
0001-01-01 00:00:00 +0000 UTC

看起来像"价值"可以工作但是"到期"没有按'吨。我想使用Cookie进行用户登录。谁能告诉我如何制作" cookie2"工作?

P.S。我还发现了以下问题:enter image description here这与我的问题非常相似,但答案是我们不能以这种方式使用cookie。如果这是真的那么我可以知道每个人都在使用cookie吗?

谢谢

1 个答案:

答案 0 :(得分:-1)

您应该请求名称为“ Expiry”的cookie,您将获得设置的有效期