如何检查通过GET请求获得的Cookie是否过期?我尝试过:
cookie, err := c.Request.Cookie("session")
if err == nil && time.Now().Before(cookie.Expires) {
log.Printf("COOKIE IS STILL GOOD. YUM!\n")
return
}
但在调试时,我发现到期日期不正确:
2019/05/15 01:23:46 0001-01-01 00:00:00 +0000 UTC
日期是今天,而不是我设定的2051年,其他的都没有意义。发生了什么?
2条答案
按热度按时间pqwbnv8z1#
由于客户机仅在Cookie标头中发送名称和值,因此名称和值字段是此上下文中设置的唯一字段。过期字段具有时间。时间零值,如日志输出所示。
应用程序必须执行Cookie协议之外的操作来确定Cookie是否仍然有效。
xsuvu9jc2#
如果cookie已过期,它将不在
document.cookie
值中。由于该值是字符串,您可以使用indexOf()
搜索cookie的键(名称)。如果不在,则它已过期或从未设置。