【发布时间】:2019-10-15 22:13:55
【问题描述】:
我在玩具应用程序中使用 gorilla/sessions,我想使用 FilesystemStore,但如果我将商店的 MaxAge 选项设置为 0,它会在保存会话时尝试删除会话,但如果会话是新的,它没有 ID:
sess, err := s.store.Get(r, "session-name")
if err != nil {
log.Printf("error getting session %v", err)
http.Error(w, "session", http.StatusInternalServerError)
return
}
sess.Values["name"] = r.FormValue("name")
if err = sess.Save(r, w); err != nil {
log.Printf("error saving session %v", err)
http.Error(w, "saving", http.StatusInternalServerError)
return
}
http.Redirect(w, r, "/view", http.StatusFound)
我得到的错误是:
2019/10/15 09:22:03 error saving session remove sessions\session_: The system cannot find the file specified.
查看 Gorilla 代码,Gorilla 代码似乎在确定会话是否具有 ID 之前尝试从存储中删除会话。
是我的 Gorilla 有问题,还是我使用它的方式有问题?
不将 MaxAge 设置为 0 时一切正常,但我必须自己管理 cookie。
【问题讨论】:
-
听起来您使用的文件不存在。但是你没有包含那部分代码。
-
为什么将最大年龄设置为 0?