如何检查我是否通过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年,没有其他意义。发生了什么事?
由于客户端仅在cookie标头中发送名称和值,因此名称和值字段是此上下文中设置的唯一字段。到期字段具有时间。零值如日志输出所示。
应用程序必须在cookie协议之外做某事,以确定cookie是否仍然有效。
如果cookie已过期,则不会在document.cookie
值中。由于该值是字符串,因此您可以使用indexOf()
搜索cookie的密钥(名称(。如果不存在,它要么过期或从未设置。
if (document.cookie.indexOf('key-name')===-1){
//value was not found, must be expire
}else{
//not expired
}