Go语言 如何检查Cookie是否过期

wmomyfyw  于 2023-03-10  发布在  Go
关注(0)|答案(2)|浏览(188)

如何检查通过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年,其他的都没有意义。发生了什么?

pqwbnv8z

pqwbnv8z1#

由于客户机仅在Cookie标头中发送名称和值,因此名称和值字段是此上下文中设置的唯一字段。过期字段具有时间。时间零值,如日志输出所示。
应用程序必须执行Cookie协议之外的操作来确定Cookie是否仍然有效。

xsuvu9jc

xsuvu9jc2#

如果cookie已过期,它将不在document.cookie值中。由于该值是字符串,您可以使用indexOf()搜索cookie的键(名称)。如果不在,则它已过期或从未设置。

if (document.cookie.indexOf('key-name')===-1){
   //value was not found, must be expire
}else{
   //not expired
}

相关问题