英文:
Go Gorilla Mux Session Name
问题
我很难理解Gorilla mux
的会话名称。
http://www.gorillatoolkit.org/pkg/sessions#CookieStore.Get
var store = sessions.NewCookieStore([]byte("something-very-secret"))
func MyHandler(w http.ResponseWriter, r *http.Request) {
// 获取一个会话。我们忽略了解码现有会话时产生的错误:
// Get()始终返回一个会话,即使是空的。
session, _ := store.Get(r, "session-name")
// 设置一些会话值。
session.Values["foo"] = "bar"
session.Values[42] = 43
// 保存会话。
session.Save(r, w)
}
我想使用会话来避免在两个处理程序之间使用全局变量。因此,我将键值保存在共享会话中,并从会话中检索值。
我想知道,如果我希望每个用户都有自己独特的会话和Values
,我是否需要分配唯一的会话名称(会话ID)?还是Gorilla会话自己处理每个用户获取自己的会话和值?
我想知道是否需要生成具有唯一标识符的会话名称。
谢谢。
英文:
I am having a hard time understanding Gorilla mux
's session name.
http://www.gorillatoolkit.org/pkg/sessions#CookieStore.Get
var store = sessions.NewCookieStore([]byte("something-very-secret"))
func MyHandler(w http.ResponseWriter, r *http.Request) {
// Get a session. We're ignoring the error resulted from decoding an
// existing session: Get() always returns a session, even if empty.
session, _ := store.Get(r, "session-name")
// Set some session values.
session.Values["foo"] = "bar"
session.Values[42] = 43
// Save it.
session.Save(r, w)
}
I want to use session to avoid using global variables between two handlers. So I save the key-value in the shared session and retrieve the value from the session.
And I wonder if I want each user to have its own unique session and its Values
, do I need to assign unique session name(session id)? Or the gorilla session handles by itself that each user gets its own session and values?
I wonder if I need to generate session names with unique identifiers.
Thanks
答案1
得分: 7
会话数据存储在客户端的 cookie 中。因此,使用 store.Get(r, "session-name")
检索到的会话是读取特定客户端(请求)的 cookie。你不需要唯一的名称。在这种情况下,名称是 cookie 的名称,因此它将对请求是唯一的。
英文:
The session data is stored in the client's cookies. So the session you retrieve with store.Get(r, "session-name")
is reading that particular client't (request) cookies. You do not need unique names. The name in this case is the name of the cookie so it will be unique to the request.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论