session - Go Gorilla Mux session 名称

标签 session go session-variables gorilla

我很难理解 Gorilla mux 的 session 名称。

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 中检索值。

而且我想知道如果我希望每个用户都有自己独特的 session 及其Values,我是否需要分配唯一的 session 名称( session ID)?或者 gorilla session 自行处理,每个用户都有自己的 session 和值?

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

谢谢

最佳答案

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

关于session - Go Gorilla Mux session 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28817869/

相关文章:

php - session 的默认生命周期是多少?

php - PHP 中的 Cookie 过期日期(在自定义日期)

go - "Clean Architecture"Go 程序的通用 ID 类型

asp.net - 为 session 值的键名创建一个枚举是个好主意吗?

php - session 表现出突然的行为

java - 的解释?和 : operators

go - 如何使用go get获取包的指定版本(标签)?

google-chrome - 如何拦截网络流量并使用 chromedp(或替代方案)获得响应?

php - 使用 session 变量从 mysql 服务器调用数据

java - 在 Spring MVC 中,跟踪所有 jsps 中使用的 session 属性的最佳方法是什么?