基於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")
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM