session用来记录当前登录状态:
导入包文件:
go get github.com/gin-contrib/sessions
package tool
import (
"fmt"
"github.com/gin-contrib/sessions"
"github.com/gin-contrib/sessions/redis"
"github.com/gin-gonic/gin"
)
//初始化sesson
func InitSession(engine *gin.Engine) {
config := GetConfig().RedisConfig
store, err := redis.NewStore(10,"tcp",config.Addr+":"+config.Port,config.Password,[]byte("secret"))
if err != nil {
fmt.Println(err.Error())
}
engine.Use(sessions.Sessions("mysession",store))
}
//设置session
func Setsess(context *gin.Context ,key interface{}, value interface{}) error {
fmt.Println("保存session:",key,",",value)
session := sessions.Default(context)
if session == nil {
return nil
}
session.Set(key, value)
return session.Save()
}
//获取session
func Getsess(context *gin.Context ,key interface{}) interface{} {
fmt.Println("获取session:",key)
session := sessions.Default(context)
return session.Get(key)
}