Go Gorilla Mux 会话名称

3

我很难理解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 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)
}

我希望使用session来避免在两个处理程序之间使用全局变量。因此,我将键值保存在共享session中,并从session中检索值。

我想知道如果我希望每个用户都有自己独特的会话和Values,是否需要分配唯一的会话名称(会话ID)?还是Gorilla Session会自行处理,使每个用户获得自己的会话和值?

我想知道是否需要生成具有唯一标识符的会话名称。

谢谢。


什么是“共享会话”?在哪些方面进行共享?是在 Goroutines 还是客户端之间? - Volker
1个回答

7

会话数据存储在客户端的cookies中。因此,您使用store.Get(r, "session-name")检索的会话正在读取该特定客户端(请求)的cookies。您不需要唯一的名称。在这种情况下,名称是cookie的名称,因此它将对请求唯一。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接