@@ -250,12 +250,13 @@ func main() {
250250
251251### MongoDB
252252
253+ #### mgo
253254``` go
254255package main
255256
256257import (
257258 " github.com/gin-contrib/sessions"
258- " github.com/gin-contrib/sessions/mongo"
259+ " github.com/gin-contrib/sessions/mongo/mongomgo "
259260 " github.com/gin-gonic/gin"
260261 " github.com/globalsign/mgo"
261262)
@@ -268,7 +269,54 @@ func main() {
268269 }
269270
270271 c := session.DB (" " ).C (" sessions" )
271- store := mongo.NewStore (c, 3600 , true , []byte (" secret" ))
272+ store := mongomgo.NewStore (c, 3600 , true , []byte (" secret" ))
273+ r.Use (sessions.Sessions (" mysession" , store))
274+
275+ r.GET (" /incr" , func (c *gin.Context ) {
276+ session := sessions.Default (c)
277+ var count int
278+ v := session.Get (" count" )
279+ if v == nil {
280+ count = 0
281+ } else {
282+ count = v.(int )
283+ count++
284+ }
285+ session.Set (" count" , count)
286+ session.Save ()
287+ c.JSON (200 , gin.H {" count" : count})
288+ })
289+ r.Run (" :8000" )
290+ }
291+ ```
292+
293+ #### mongo-driver
294+ ```
295+ package main
296+
297+ import (
298+ "context"
299+ "github.com/gin-contrib/sessions"
300+ "github.com/gin-contrib/sessions/mongo/mongodriver"
301+ "github.com/gin-gonic/gin"
302+ "go.mongodb.org/mongo-driver/mongo"
303+ "go.mongodb.org/mongo-driver/mongo/options"
304+ )
305+
306+ func main() {
307+ r := gin.Default()
308+ mongoOptions := options.Client().ApplyURI("mongodb://localhost:27017")
309+ client, err := mongo.NewClient(mongoOptions)
310+ if err != nil {
311+ // handle err
312+ }
313+
314+ if err := client.Connect(context.Background()); err != nil {
315+ // handle err
316+ }
317+
318+ c := client.Database("test").Collection("sessions")
319+ store := mongodriver.NewStore(c, 3600, true, []byte("secret"))
272320 r.Use(sessions.Sessions("mysession", store))
273321
274322 r.GET("/incr", func(c *gin.Context) {
@@ -330,38 +378,38 @@ func main() {
330378package main
331379
332380import (
333- " github.com/gin-contrib/sessions"
334- gormsessions " github.com/gin-contrib/sessions/gorm"
335- " github.com/gin-gonic/gin"
336- " gorm.io/driver/sqlite"
337- " gorm.io/gorm"
381+ " github.com/gin-contrib/sessions"
382+ gormsessions " github.com/gin-contrib/sessions/gorm"
383+ " github.com/gin-gonic/gin"
384+ " gorm.io/driver/sqlite"
385+ " gorm.io/gorm"
338386)
339387
340388func main () {
341- db , err := gorm.Open (sqlite.Open (" test.db" ), &gorm.Config {})
342- if err != nil {
343- panic (err)
344- }
345- store := gormsessions.NewStore (db, true , []byte (" secret" ))
346-
347- r := gin.Default ()
348- r.Use (sessions.Sessions (" mysession" , store))
349-
350- r.GET (" /incr" , func (c *gin.Context ) {
351- session := sessions.Default (c)
352- var count int
353- v := session.Get (" count" )
354- if v == nil {
355- count = 0
356- } else {
357- count = v.(int )
358- count++
359- }
360- session.Set (" count" , count)
361- session.Save ()
362- c.JSON (200 , gin.H {" count" : count})
363- })
364- r.Run (" :8000" )
389+ db , err := gorm.Open (sqlite.Open (" test.db" ), &gorm.Config {})
390+ if err != nil {
391+ panic (err)
392+ }
393+ store := gormsessions.NewStore (db, true , []byte (" secret" ))
394+
395+ r := gin.Default ()
396+ r.Use (sessions.Sessions (" mysession" , store))
397+
398+ r.GET (" /incr" , func (c *gin.Context ) {
399+ session := sessions.Default (c)
400+ var count int
401+ v := session.Get (" count" )
402+ if v == nil {
403+ count = 0
404+ } else {
405+ count = v.(int )
406+ count++
407+ }
408+ session.Set (" count" , count)
409+ session.Save ()
410+ c.JSON (200 , gin.H {" count" : count})
411+ })
412+ r.Run (" :8000" )
365413}
366414```
367415
@@ -371,40 +419,40 @@ func main() {
371419package main
372420
373421import (
374- " database/sql"
375- " github.com/gin-contrib/sessions"
376- " github.com/gin-contrib/sessions/postgres"
377- " github.com/gin-gonic/gin"
422+ " database/sql"
423+ " github.com/gin-contrib/sessions"
424+ " github.com/gin-contrib/sessions/postgres"
425+ " github.com/gin-gonic/gin"
378426)
379427
380428func main () {
381- r := gin.Default ()
382- db , err := sql.Open (" postgres" , " postgresql://username:password@localhost:5432/database" )
383- if err != nil {
384- // handle err
385- }
386-
387- store , err := postgres.NewStore (db, []byte (" secret" ))
388- if err != nil {
389- // handle err
390- }
391-
392- r.Use (sessions.Sessions (" mysession" , store))
393-
394- r.GET (" /incr" , func (c *gin.Context ) {
395- session := sessions.Default (c)
396- var count int
397- v := session.Get (" count" )
398- if v == nil {
399- count = 0
400- } else {
401- count = v.(int )
402- count++
403- }
404- session.Set (" count" , count)
405- session.Save ()
406- c.JSON (200 , gin.H {" count" : count})
407- })
408- r.Run (" :8000" )
429+ r := gin.Default ()
430+ db , err := sql.Open (" postgres" , " postgresql://username:password@localhost:5432/database" )
431+ if err != nil {
432+ // handle err
433+ }
434+
435+ store , err := postgres.NewStore (db, []byte (" secret" ))
436+ if err != nil {
437+ // handle err
438+ }
439+
440+ r.Use (sessions.Sessions (" mysession" , store))
441+
442+ r.GET (" /incr" , func (c *gin.Context ) {
443+ session := sessions.Default (c)
444+ var count int
445+ v := session.Get (" count" )
446+ if v == nil {
447+ count = 0
448+ } else {
449+ count = v.(int )
450+ count++
451+ }
452+ session.Set (" count" , count)
453+ session.Save ()
454+ c.JSON (200 , gin.H {" count" : count})
455+ })
456+ r.Run (" :8000" )
409457}
410458```
0 commit comments