summaryrefslogtreecommitdiff
path: root/vendor/github.com/gin-contrib/sessions/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/gin-contrib/sessions/README.md')
-rw-r--r--vendor/github.com/gin-contrib/sessions/README.md153
1 files changed, 122 insertions, 31 deletions
diff --git a/vendor/github.com/gin-contrib/sessions/README.md b/vendor/github.com/gin-contrib/sessions/README.md
index 7d5c2305a..9984794e9 100644
--- a/vendor/github.com/gin-contrib/sessions/README.md
+++ b/vendor/github.com/gin-contrib/sessions/README.md
@@ -13,6 +13,7 @@ Gin middleware for session management with multi-backend support:
- [Redis](#redis)
- [memcached](#memcached)
- [MongoDB](#mongodb)
+- [GoRM](#gorm)
- [memstore](#memstore)
- [PostgreSQL](#postgresql)
@@ -249,12 +250,13 @@ func main() {
### MongoDB
+#### mgo
```go
package main
import (
"github.com/gin-contrib/sessions"
- "github.com/gin-contrib/sessions/mongo"
+ "github.com/gin-contrib/sessions/mongo/mongomgo"
"github.com/gin-gonic/gin"
"github.com/globalsign/mgo"
)
@@ -267,7 +269,54 @@ func main() {
}
c := session.DB("").C("sessions")
- store := mongo.NewStore(c, 3600, true, []byte("secret"))
+ store := mongomgo.NewStore(c, 3600, true, []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++
+ }
+ session.Set("count", count)
+ session.Save()
+ c.JSON(200, gin.H{"count": count})
+ })
+ r.Run(":8000")
+}
+```
+
+#### mongo-driver
+```
+package main
+
+import (
+ "context"
+ "github.com/gin-contrib/sessions"
+ "github.com/gin-contrib/sessions/mongo/mongodriver"
+ "github.com/gin-gonic/gin"
+ "go.mongodb.org/mongo-driver/mongo"
+ "go.mongodb.org/mongo-driver/mongo/options"
+)
+
+func main() {
+ r := gin.Default()
+ mongoOptions := options.Client().ApplyURI("mongodb://localhost:27017")
+ client, err := mongo.NewClient(mongoOptions)
+ if err != nil {
+ // handle err
+ }
+
+ if err := client.Connect(context.Background()); err != nil {
+ // handle err
+ }
+
+ c := client.Database("test").Collection("sessions")
+ store := mongodriver.NewStore(c, 3600, true, []byte("secret"))
r.Use(sessions.Sessions("mysession", store))
r.GET("/incr", func(c *gin.Context) {
@@ -322,46 +371,88 @@ func main() {
}
```
+### GoRM
+
+[embedmd]:# (_example/gorm/main.go go)
+```go
+package main
+
+import (
+ "github.com/gin-contrib/sessions"
+ gormsessions "github.com/gin-contrib/sessions/gorm"
+ "github.com/gin-gonic/gin"
+ "gorm.io/driver/sqlite"
+ "gorm.io/gorm"
+)
+
+func main() {
+ db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
+ if err != nil {
+ panic(err)
+ }
+ store := gormsessions.NewStore(db, true, []byte("secret"))
+
+ r := gin.Default()
+ 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++
+ }
+ session.Set("count", count)
+ session.Save()
+ c.JSON(200, gin.H{"count": count})
+ })
+ r.Run(":8000")
+}
+```
+
### PostgreSQL
```go
package main
import (
- "database/sql"
- "github.com/gin-contrib/sessions"
- "github.com/gin-contrib/sessions/postgres"
- "github.com/gin-gonic/gin"
+ "database/sql"
+ "github.com/gin-contrib/sessions"
+ "github.com/gin-contrib/sessions/postgres"
+ "github.com/gin-gonic/gin"
)
func main() {
- r := gin.Default()
- db, err := sql.Open("postgres", "postgresql://username:password@localhost:5432/database")
- if err != nil {
- // handle err
- }
+ r := gin.Default()
+ db, err := sql.Open("postgres", "postgresql://username:password@localhost:5432/database")
+ if err != nil {
+ // handle err
+ }
- store, err := postgres.NewStore(db, []byte("secret"))
- if err != nil {
- // handle err
- }
+ store, err := postgres.NewStore(db, []byte("secret"))
+ if err != nil {
+ // handle err
+ }
- r.Use(sessions.Sessions("mysession", store))
+ 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++
- }
- session.Set("count", count)
- session.Save()
- c.JSON(200, gin.H{"count": count})
- })
- r.Run(":8000")
+ 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++
+ }
+ session.Set("count", count)
+ session.Save()
+ c.JSON(200, gin.H{"count": count})
+ })
+ r.Run(":8000")
}
```