gpt4 book ai didi

session - 在 Gorilla session 中使用自定义类型

转载 作者:IT王子 更新时间:2023-10-29 00:37:03 26 4
gpt4 key购买 nike

我正在尝试使用 Golang 中的 gorilla session 来存储 session 数据。我发现我可以存储字符串片段 ([]strings),但我无法存储自定义结构片段 ([]customtype)。我想知道是否有人遇到过这个问题,是否有任何修复方法。

我可以很好地运行 session 并获取其他变量,这些变量不是我存储的自定义结构的 slice 。我什至能够将正确的变量传递给 session.Values["variable"] 但是当我执行 session.Save(r, w) 时,它似乎没有保存变量。

编辑:找到解决方案。一旦我完全理解就会编辑。

最佳答案

解决了这个。

您需要注册 gob 类型,以便 session 可以使用它。

例如:

import(
"encoding/gob"
"github.com/gorilla/sessions"
)

type Person struct {

FirstName string
LastName string
Email string
Age int
}

func main() {
//now we can use it in the session
gob.Register(Person{})
}

func createSession(w http.ResponseWriter, r *http.Request) {
//create the session
session, _ := store.Get(r, "Scholar0")

//make the new struct
x := Person{"Bob", "Smith", "Bob@Smith.com", 22}

//add the value
session.Values["User"] = x

//save the session
session.Save(r, w)
}

关于session - 在 Gorilla session 中使用自定义类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24834480/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com