【发布时间】:2014-03-15 22:46:00
【问题描述】:
我正在尝试使用用户登录构建一个简单的 Web 应用程序。
我在这里的另一篇文章中发现了这个功能。
func initSession(r *http.Request) *sessions.Session {
session, _ := store.Get(r, "mBoxStore")
if session.IsNew {
session.Options.Domain = "localhost"
session.Options.MaxAge = 10
session.Options.HttpOnly = false
session.Options.Secure = false
log.Println("Create New Session (cookie)")
} else {
log.Println("Use Old Session (old cookie)")
}
return session
}
cookie 在10 seconds 之后过期,但是当我重新加载页面时,例如1 Minute
它使用旧的(过期的)cookie。
在我的浏览器 (Firefox) 中,我看到了过期日期正确的 cookie。
我认为它应该使用新的 cookie 创建一个新会话,否则它是错误的?
有什么建议吗?
【问题讨论】:
-
您最好在应用程序启动时为每个商店设置选项。然后只需在您的处理程序中使用
session.Get(并检查错误)。sessions文档很好地涵盖了它:gorillatoolkit.org/pkg/sessions -
感谢您的回答。问题不在于代码……它对我有用……我可以从会话中保存和读取数据……但它忽略了 cookie 中的过期日期。它总是使用“旧”Cookie。