示例:
// save session to badger
sid := strings.Replace(uuid.New().String(), "-", "", -1)
if err = cache.Setx(sessionKey(sid), string(buf), ttl); err != nil {
log.Errorf("In SaveSession cache.Setx() fail,sid: %v,%v", sid, err)
return err
}
session.Sid = sid
log.Infof("save session success: %v", sid)
// set sid in cookie
c.SetCookie(
conf.SessionConfig.SessionKey, sid,
conf.SessionConfig.Cookie.MaxAge,
"",
conf.SessionConfig.Cookie.Domain,
false, false,
)
如果maxAge属性为正数,则表示该Cookie会在maxAge秒之后自动失效
。浏览器会将maxAge为正数的Cookie持久化,即写到对应的Cookie文件中。无论客户关闭了浏览器还是电脑,只要还在maxAge秒之前,登录网站时该Cookie仍然有效。
如果maxAge为负数,则表示该Cookie仅在本浏览器窗口以及本窗口打开的子窗口内有效,关闭窗口后该Cookie即失效
。maxAge为负数的Cookie,为临时性Cookie,不会被持久化,不会被写到Cookie文件中。Cookie信息保存在浏览器内存中,因此关闭浏览器该 Cookie就消失了。Cookie默认的maxAge值为-1。
如果maxAge为0,则表示删除该Cookie
。Cookie机制没有提供删除Cookie的方法,因此通过设置该Cookie即时失效实现删除Cookie的效果。失效的Cookie会被浏览器从Cookie文件或者内存中删除
。