hanayo/vendor/github.com/johnniedoe/contrib/sessions/README.md
2019-02-23 13:29:15 +00:00

1.3 KiB

sessions

Gin middleware for session management with multi-backend support (currently cookie, Redis).

Examples

package main

import (
  "github.com/gin-gonic/contrib/sessions"
  "github.com/gin-gonic/gin"
)

func main() {
  r := gin.Default()
  store := sessions.NewCookieStore([]byte("secret"))
  r.Use(sessions.Sessions("mysession", store))

  r.GET("/incr", func(c *gin.Context) {
    session := sessions.Default(c)  
    var count int
    v := session.Get("count")
    if v == nil {
      count = 0
    } else {
      count = v.(int)
      count += 1
    }
    session.Set("count", count)
    session.Save()
    c.JSON(200, gin.H{"count": count})
  })
  r.Run(":8000")
}

Redis

package main

import (
  "github.com/gin-gonic/contrib/sessions"
  "github.com/gin-gonic/gin"
)

func main() {
  r := gin.Default()
  store, _ := sessions.NewRedisStore(10, "tcp", "localhost:6379", "", []byte("secret"))
  r.Use(sessions.Sessions("session", store))

  r.GET("/incr", func(c *gin.Context) {
    session := sessions.Default(c)
    var count int
    v := session.Get("count")
    if v == nil {
      count = 0
    } else {
      count = v.(int)
      count += 1
    }
    session.Set("count", count)
    session.Save()
    c.JSON(200, gin.H{"count": count})
  })
  r.Run(":8000")
}