Reputation: 1041
I'm setting a new 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)
Then i'm trying to get it
func f2(w http.ResponseWriter, r *http.Request) {
...
cookie, err := r.Cookie("token")
fmt.Println(cookie.Value)
fmt.Println(cookie.Expires)
Output
valid_token_string
0001-01-01 00:00:00 +0000 UTC
Value is the same i set, but Expires is empty. Why?
Upvotes: 11
Views: 5651
Reputation: 155
I spent a few minutes to figure out how to use the expiry time.
I feel this answer is not enough. I would like to add 2 more points to this:
I believe that is how it works with expiration. If we store a session token, backend is going to check for session expiry anyway.
Upvotes: 0
Reputation: 545
If you want to query the expiry, you should address it as a different cookie.
Upvotes: -2
Reputation:
That's how HTTP works; the expires attribute is only sent with the Set-Cookie response header, not with the Cookie request header. The Cookie request header contains only the names and values of the cookies, not any other metadata.
Upvotes: 15