...

Source file src/github.com/gin-contrib/sessions/_example/gorm/main.go

Documentation: github.com/gin-contrib/sessions/_example/gorm

     1  package main
     2  
     3  import (
     4  	"github.com/gin-contrib/sessions"
     5  	gormsessions "github.com/gin-contrib/sessions/gorm"
     6  	"github.com/gin-gonic/gin"
     7  	"gorm.io/driver/sqlite"
     8  	"gorm.io/gorm"
     9  )
    10  
    11  func main() {
    12  	db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
    13  	if err != nil {
    14  		panic(err)
    15  	}
    16  	store := gormsessions.NewStore(db, true, []byte("secret"))
    17  
    18  	r := gin.Default()
    19  	r.Use(sessions.Sessions("mysession", store))
    20  
    21  	r.GET("/incr", func(c *gin.Context) {
    22  		session := sessions.Default(c)
    23  		var count int
    24  		v := session.Get("count")
    25  		if v == nil {
    26  			count = 0
    27  		} else {
    28  			count = v.(int)
    29  			count++
    30  		}
    31  		session.Set("count", count)
    32  		session.Save()
    33  		c.JSON(200, gin.H{"count": count})
    34  	})
    35  	r.Run(":8000")
    36  }
    37  

View as plain text