如何检查cookie是否过期



如何检查我是否通过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
}

最新更新