gin操作session

作者: adm 分类: go 发布时间: 2022-01-02

导入包:go get github.com/gin-contrib/sessions

func main() {
r := gin.Default()
// 创建基于cookie的存储引擎,secret11111 参数是用于加密的密钥
store := cookie.NewStore([]byte("secret11111"))
// 设置session中间件,参数mysession,指的是session的名字,也是cookie的名字
// store是前面创建的存储引擎,我们可以替换成其他存储引擎
r.Use(sessions.Sessions("mysession", store))

r.GET("/hello", func(c *gin.Context) {
// 初始化session对象
session := sessions.Default(c)
// 通过session.Get读取session值
// session是键值对格式数据,因此需要通过key查询数据
if session.Get("hello") != "world" {
// 设置session数据
session.Set("hello", "world")
// 删除session数据
//session.Delete("hello")
//清空session
//session.Clear()
// 保存session数据
//session.Save()
// 删除整个session
// session.Clear()
}
//转发到另一个url
c.Request.URL.Path = "/hi"
r.HandleContext(c)
})
r.GET("/hi", func(context *gin.Context) {
// 初始化session对象
session := sessions.Default(context)
context.JSON(http.StatusOK, gin.H{
"session": session.Get("hello"),
})
})

r.Run(":8000")
}

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!