要想在 Gin 框架中使用 session,可以使用官方开源项目
https://github.com/gin-contrib/sessions
安装
go get github.com/gin-contrib/sessions
代码集成,这里使用 redis 作为存储后端
import (
"github.com/gin-contrib/sessions"
"github.com/gin-contrib/sessions/redis"
"github.com/gin-gonic/gin"
)
func main() {store, _ := redis.NewStoreWithDB(10, "tcp", "redis-db:6379", "密码", "RedisDB 库", []byte("密钥"))
r.Use(sessions.Sessions("session", store))
}
sessions.Sessions(“session”, store) session 为浏览器中存储的名字
gin 中设置和获取 session
session := sessions.Default(c)
v := session.Get("uuid")
if v == nil {u4 := uuid.New()
session.Set("uuid", u4.String())
session.Save()
global.GL_LOG.Debugf("GinUUIDGen-set:%s", u4)
return nil, u4.String()} else {global.GL_LOG.Debugf("GinUUIDGen:%s", v)
return nil, v.(string)
}
可以根据逻辑来为用户设置标识,这里我使用随机 uuid 来判断用户。设置后可以在 redis 里面看到 session 信息