...
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