【问题标题】:Go Gorilla Mux Session NameGo Gorilla Mux 会话名称
【发布时间】:2015-05-03 06:45:40
【问题描述】:

我很难理解 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 来避免在两个处理程序之间使用全局变量。所以我将键值保存在共享会话中并从会话中检索值。

我想知道我是否希望每个用户都有自己唯一的会话及其Values,我是否需要分配唯一的会话名称(会话 ID)?还是大猩猩会话自己处理每个用户都有自己的会话和值?

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

谢谢

【问题讨论】:

  • 什么是“共享会话”?之间共享什么? Goroutine 还是客户端?

标签: session go session-variables gorilla


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-12-21
    • 2015-04-02
    • 2015-04-18
    • 2022-01-20
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多