我正在尝试设置一个大猩猩会话,然后再次检索该值。我正在做以下测试。
//create session and store in http Cookies
session, err := store.Get(req, "session")
if err != nil {
errCode = http.StatusInternalServerError
return
}
//save a value
session.Values["user_id"] = userTuple.UserId
err = session.Save(req, w)
if err != nil {
errCode = http.StatusInternalServerError
return
}
//try to get the same session that was just created
nr := http.Request{Header: w.Header()}
session, err = store.Get(&nr, "session")
if err != nil {
errCode = http.StatusInternalServerError
return
} else if session.IsNew {
log.Println("New session created instead of old one.")
}
这是一个更大的 HTTP 处理程序的片段。但是相关部分已发布,第二次调用store.Get()不是返回现有会话,而是返回一个全新的会话。因此,当执行此代码所在的处理程序时,日志语句将打印到控制台。
为什么在这种情况下我得到一个新会话而不是我已经创建和保存的会话?