Skip to content
This repository was archived by the owner on Aug 7, 2018. It is now read-only.

Repository files navigation

sessions

Build StatuscodecovGo Report CardGoDocJoin the chat at https://gitter.im/gin-gonic/gin

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

Usage

Start using it

Download and install it:

$ go get github.com/gin-contrib/sessions

Import it in your code:

import"github.com/gin-contrib/sessions"

Examples

cookie-based

package main
import (
"github.com/gin-contrib/sessions""github.com/gin-gonic/gin"
)
funcmain() {
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)
varcountintv:=session.Get("count")
ifv==nil {
count=0
} else {
count=v.(int)
count++
}
session.Set("count", count)
session.Save()
c.JSON(200, gin.H{"count": count})
})
r.Run(":8000")
}

Redis

package main
import (
"github.com/gin-contrib/sessions""github.com/gin-gonic/gin"
)
funcmain() {
r:=gin.Default()
store, _:=sessions.NewRedisStore(10, "tcp", "localhost:6379", "", []byte("secret"))
r.Use(sessions.Sessions("mysession", store))
r.GET("/incr", func(c*gin.Context) {
session:=sessions.Default(c)
varcountintv:=session.Get("count")
ifv==nil {
count=0
} else {
count=v.(int)
count++
}
session.Set("count", count)
session.Save()
c.JSON(200, gin.H{"count": count})
})
r.Run(":8000")
}

Memcached

package main
import (
"github.com/bradfitz/gomemcache/memcache""github.com/gin-contrib/sessions""github.com/gin-gonic/gin"
)
funcmain() {
r:=gin.Default()
store:=sessions.NewMemcacheStore(memcache.New("localhost:11211"), "", []byte("secret"))
r.Use(sessions.Sessions("mysession", store))
r.GET("/incr", func(c*gin.Context) {
session:=sessions.Default(c)
varcountintv:=session.Get("count")
ifv==nil {
count=0
} else {
count=v.(int)
count++
}
session.Set("count", count)
session.Save()
c.JSON(200, gin.H{"count": count})
})
r.Run(":8000")
}

MongoDB

package main
import (
"github.com/gin-contrib/sessions""github.com/gin-gonic/gin""gopkg.in/mgo.v2"
)
funcmain() {
r:=gin.Default()
session, err:=mgo.Dial("localhost:27017/test")
iferr!=nil {
// handle err
}
c:=session.DB("").C("sessions")
store:=sessions.NewMongoStore(c, 3600, true, []byte("secret"))
r.Use(sessions.Sessions("mysession", store))
r.GET("/incr", func(c*gin.Context) {
session:=sessions.Default(c)
varcountintv:=session.Get("count")
ifv==nil {
count=0
} else {
count=v.(int)
count++
}
session.Set("count", count)
session.Save()
c.JSON(200, gin.H{"count": count})
})
r.Run(":8000")
}

About

Gin middleware for session management

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages