我使用lib github.com/ipfans/echo-session。我可以在设置数组struct
时保存会话这是我的代码:
保存会话
type StaffInfor struct {
Login_id string
Family_name_cc string
First_name_cc string
Family_name_kana string
First_name_kana string
Role_id int
Password string
Message_invalid []string
}
~~~
session := session.Default(c)
session.Set("test", listStaffInfor)// listStaffInfor is array struct StaffInfor
session.Save()
从会话中获取
session := session.Default(c)
fmt.Println(session.Get("test"))
控制台结果显示为空
答案 0 :(得分:1)
图书馆github.com/ipfans/echo-session
在内部使用github.com/gorilla/sessions
。
使用encoding/gob
包序列化Gorilla会话对象。因此,要在会话中存储复杂的数据类型,您必须注册struct
。
type StaffInfor struct {
Login_id string
Family_name_cc string
First_name_cc string
Family_name_kana string
First_name_kana string
Role_id int
Password string
Message_invalid []string
}
type ListStaffInfor []StaffInfor
func init() {
gob.Register(&StaffInfor{})
gob.Register(&ListStaffInfor{})
}
注意:如果您正在使用基于cookie的会话,则不建议将大对象存储到会话中,因为您可能会将cookie大小限制为4KB。