gofiber: session
一,代码:
官网文档地址:
https://docs.gofiber.io/api/middleware/session
1,全局变量
package config
import (
"github.com/gofiber/fiber/v2/middleware/session"
"github.com/gofiber/fiber/v2/utils"
"time"
)
var Store = session.New(session.Config{
Expiration: 24 * time.Hour,
KeyLookup: "cookie:session_id",
KeyGenerator: utils.UUIDv4,
})
2, 写入
func (dc *ArticleController) ListArticle(c *fiber.Ctx) error {
sess, err := config.Store.Get(c)
if err != nil {
return c.SendString("session读取错误")
}
user:=c.Query("user")
if user == "" {
sess.Set("islogin", "no")
sess.Set("name", "")
} else {
sess.Set("islogin", "yes")
sess.Set("name", user)
}
username1 := sess.Get("name")
fmt.Println("保存前:",username1)
fmt.Println("保存前:",sess)
if err := sess.Save(); err != nil {
return c.SendString("session保存错误")
}
//保存后再次读取session
sess, err = config.Store.Get(c)
if err != nil {
return c.SendString("session读取错误")
}
username := sess.Get("name")
fmt.Println("保存后:",username)
fmt.Println("保存后:",sess)
myMap:=fiber.Map{}
myMap["Title"] = "书店新上图书列表"
myMap["SessionUser"] = username
return c.Render("article/list", myMap)
}
3, 读取
func (dc *ArticleController) GetArticle(c *fiber.Ctx) error {
sess, err := config.Store.Get(c)
if err != nil {
return c.SendString("session错误")
}
fmt.Println(sess)
//读取单个value
username := sess.Get("name")
fmt.Println(username)
//列出所有的key
keys := sess.Keys()
fmt.Println(keys)
myMap:=fiber.Map{}
myMap["Title"] = "书店新上图书列表"
myMap["SessionUser"] = username
return c.Render("article/info", myMap)
}
二,测试效果
写入到session
从session读取
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!