基于gin框架的session使用
第一种:
package main
import (
"github.com/gin-contrib/sessions"
"github.com/gin-contrib/sessions/cookie"
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
store := cookie.NewStore([]byte("secrect"))
r.Use(sessions.Sessions("mySession",store))
r.GET("/saveSession", func(c *gin.Context) {
session := sessions.Default(c)
if session.Get("username") != "test"{
session.Set("username","test")
session.Save()
}
c.JSON(http.StatusOK,gin.H{"msg":"session ok"})
})
r.GET("/getSession", func(c *gin.Context) {
session := sessions.Default(c)
if session.Get("username") == ""{
c.JSON(http.StatusBadRequest,gin.H{"msg":"no session"})
return
}else{
name := session.Get("username")
c.JSON(http.StatusOK,gin.H{"session":name})
return
}
})
r.Run(":8081")
}
第二种,基于redis的方式
package main
import (
"github.com/gin-contrib/sessions"
"github.com/gin-contrib/sessions/redis"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
store,_ := redis.NewStore(10,"tcp","localhost:6379","",[]byte("secret"))
r.Use(sessions.Sessions("mySession",store))
r.GET("/list", func(c *gin.Context) {
session := sessions.Default(c)
var count int
name := session.Get("count")
if name == nil{
count=0
}else{
count = name.(int)
count++
}
session.Set("count",count)
session.Save()
c.JSON(200,gin.H{"count":count})
})
r.Run(":8081")
}

浙公网安备 33010602011771号