在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天编程网就整理分享《如何检查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 header 中发送名称和值,因此“名称”和“值”字段是在此上下文中设置的唯一字段。 Expires 字段的 time.time zero value 如日志输出所示。
应用程序必须执行 cookie 协议之外的操作来确定 cookie 是否仍然有效。
如果 cookie 已过期,则它将不会出现在 document.cookie
值中。由于该值是一个字符串,因此您可以使用 indexof()
在其中搜索 cookie 的键(名称)。如果不存在,则它要么已过期,要么从未设置。
if (document.cookie.indexOf('key-name')===-1){
//value was not found, must be expire
}else{
//not expired
}
今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注编程网公众号,一起学习编程~