mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-11-04 08:32:25 -06:00 
			
		
		
		
	Update dependencies (#333)
This commit is contained in:
		
					parent
					
						
							
								ce22e03f9d
							
						
					
				
			
			
				commit
				
					
						182b4eea73
					
				
			
		
					 848 changed files with 377869 additions and 107280 deletions
				
			
		
							
								
								
									
										370
									
								
								vendor/github.com/gin-contrib/sessions/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										370
									
								
								vendor/github.com/gin-contrib/sessions/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
# sessions
 | 
			
		||||
 | 
			
		||||
[](https://travis-ci.org/gin-contrib/sessions)
 | 
			
		||||
[](https://github.com/gin-contrib/sessions/actions/workflows/lint.yml)
 | 
			
		||||
[](https://github.com/gin-contrib/sessions/actions/workflows/testing.yml)
 | 
			
		||||
[](https://codecov.io/gh/gin-contrib/sessions)
 | 
			
		||||
[](https://goreportcard.com/report/github.com/gin-contrib/sessions)
 | 
			
		||||
[](https://godoc.org/github.com/gin-contrib/sessions)
 | 
			
		||||
| 
						 | 
				
			
			@ -13,6 +14,7 @@ Gin middleware for session management with multi-backend support:
 | 
			
		|||
- [memcached](#memcached)
 | 
			
		||||
- [MongoDB](#mongodb)
 | 
			
		||||
- [memstore](#memstore)
 | 
			
		||||
- [PostgreSQL](#postgresql)
 | 
			
		||||
 | 
			
		||||
## Usage
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -21,7 +23,7 @@ Gin middleware for session management with multi-backend support:
 | 
			
		|||
Download and install it:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ go get github.com/gin-contrib/sessions
 | 
			
		||||
go get github.com/gin-contrib/sessions
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Import it in your code:
 | 
			
		||||
| 
						 | 
				
			
			@ -38,27 +40,27 @@ import "github.com/gin-contrib/sessions"
 | 
			
		|||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/gin-contrib/sessions"
 | 
			
		||||
	"github.com/gin-contrib/sessions/cookie"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
  "github.com/gin-contrib/sessions"
 | 
			
		||||
  "github.com/gin-contrib/sessions/cookie"
 | 
			
		||||
  "github.com/gin-gonic/gin"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	r := gin.Default()
 | 
			
		||||
	store := cookie.NewStore([]byte("secret"))
 | 
			
		||||
	r.Use(sessions.Sessions("mysession", store))
 | 
			
		||||
  r := gin.Default()
 | 
			
		||||
  store := cookie.NewStore([]byte("secret"))
 | 
			
		||||
  r.Use(sessions.Sessions("mysession", store))
 | 
			
		||||
 | 
			
		||||
	r.GET("/hello", func(c *gin.Context) {
 | 
			
		||||
		session := sessions.Default(c)
 | 
			
		||||
  r.GET("/hello", func(c *gin.Context) {
 | 
			
		||||
    session := sessions.Default(c)
 | 
			
		||||
 | 
			
		||||
		if session.Get("hello") != "world" {
 | 
			
		||||
			session.Set("hello", "world")
 | 
			
		||||
			session.Save()
 | 
			
		||||
		}
 | 
			
		||||
    if session.Get("hello") != "world" {
 | 
			
		||||
      session.Set("hello", "world")
 | 
			
		||||
      session.Save()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		c.JSON(200, gin.H{"hello": session.Get("hello")})
 | 
			
		||||
	})
 | 
			
		||||
	r.Run(":8000")
 | 
			
		||||
    c.JSON(200, gin.H{"hello": session.Get("hello")})
 | 
			
		||||
  })
 | 
			
		||||
  r.Run(":8000")
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -68,109 +70,107 @@ func main() {
 | 
			
		|||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/gin-contrib/sessions"
 | 
			
		||||
	"github.com/gin-contrib/sessions/cookie"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
  "github.com/gin-contrib/sessions"
 | 
			
		||||
  "github.com/gin-contrib/sessions/cookie"
 | 
			
		||||
  "github.com/gin-gonic/gin"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	r := gin.Default()
 | 
			
		||||
	store := cookie.NewStore([]byte("secret"))
 | 
			
		||||
	sessionNames := []string{"a", "b"}
 | 
			
		||||
	r.Use(sessions.SessionsMany(sessionNames, store))
 | 
			
		||||
  r := gin.Default()
 | 
			
		||||
  store := cookie.NewStore([]byte("secret"))
 | 
			
		||||
  sessionNames := []string{"a", "b"}
 | 
			
		||||
  r.Use(sessions.SessionsMany(sessionNames, store))
 | 
			
		||||
 | 
			
		||||
	r.GET("/hello", func(c *gin.Context) {
 | 
			
		||||
		sessionA := sessions.DefaultMany(c, "a")
 | 
			
		||||
		sessionB := sessions.DefaultMany(c, "b")
 | 
			
		||||
  r.GET("/hello", func(c *gin.Context) {
 | 
			
		||||
    sessionA := sessions.DefaultMany(c, "a")
 | 
			
		||||
    sessionB := sessions.DefaultMany(c, "b")
 | 
			
		||||
 | 
			
		||||
		if sessionA.Get("hello") != "world!" {
 | 
			
		||||
			sessionA.Set("hello", "world!")
 | 
			
		||||
			sessionA.Save()
 | 
			
		||||
		}
 | 
			
		||||
    if sessionA.Get("hello") != "world!" {
 | 
			
		||||
      sessionA.Set("hello", "world!")
 | 
			
		||||
      sessionA.Save()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		if sessionB.Get("hello") != "world?" {
 | 
			
		||||
			sessionB.Set("hello", "world?")
 | 
			
		||||
			sessionB.Save()
 | 
			
		||||
		}
 | 
			
		||||
    if sessionB.Get("hello") != "world?" {
 | 
			
		||||
      sessionB.Set("hello", "world?")
 | 
			
		||||
      sessionB.Save()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		c.JSON(200, gin.H{
 | 
			
		||||
			"a": sessionA.Get("hello"),
 | 
			
		||||
			"b": sessionB.Get("hello"),
 | 
			
		||||
		})
 | 
			
		||||
	})
 | 
			
		||||
	r.Run(":8000")
 | 
			
		||||
    c.JSON(200, gin.H{
 | 
			
		||||
      "a": sessionA.Get("hello"),
 | 
			
		||||
      "b": sessionB.Get("hello"),
 | 
			
		||||
    })
 | 
			
		||||
  })
 | 
			
		||||
  r.Run(":8000")
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Backend examples
 | 
			
		||||
## Backend Examples
 | 
			
		||||
 | 
			
		||||
### cookie-based
 | 
			
		||||
 | 
			
		||||
[embedmd]:# (example/cookie/main.go go)
 | 
			
		||||
```go
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/gin-contrib/sessions"
 | 
			
		||||
	"github.com/gin-contrib/sessions/cookie"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
  "github.com/gin-contrib/sessions"
 | 
			
		||||
  "github.com/gin-contrib/sessions/cookie"
 | 
			
		||||
  "github.com/gin-gonic/gin"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	r := gin.Default()
 | 
			
		||||
	store := cookie.NewStore([]byte("secret"))
 | 
			
		||||
	r.Use(sessions.Sessions("mysession", store))
 | 
			
		||||
  r := gin.Default()
 | 
			
		||||
  store := cookie.NewStore([]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")
 | 
			
		||||
  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")
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Redis
 | 
			
		||||
 | 
			
		||||
[embedmd]:# (example/redis/main.go go)
 | 
			
		||||
```go
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/gin-contrib/sessions"
 | 
			
		||||
	"github.com/gin-contrib/sessions/redis"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
  "github.com/gin-contrib/sessions"
 | 
			
		||||
  "github.com/gin-contrib/sessions/redis"
 | 
			
		||||
  "github.com/gin-gonic/gin"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	r := gin.Default()
 | 
			
		||||
	store, _ := redis.NewStore(10, "tcp", "localhost:6379", "", []byte("secret"))
 | 
			
		||||
	r.Use(sessions.Sessions("mysession", store))
 | 
			
		||||
  r := gin.Default()
 | 
			
		||||
  store, _ := redis.NewStore(10, "tcp", "localhost:6379", "", []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")
 | 
			
		||||
  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")
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -178,134 +178,174 @@ func main() {
 | 
			
		|||
 | 
			
		||||
#### ASCII Protocol
 | 
			
		||||
 | 
			
		||||
[embedmd]:# (example/memcached/ascii.go go)
 | 
			
		||||
```go
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/bradfitz/gomemcache/memcache"
 | 
			
		||||
	"github.com/gin-contrib/sessions"
 | 
			
		||||
	"github.com/gin-contrib/sessions/memcached"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
  "github.com/bradfitz/gomemcache/memcache"
 | 
			
		||||
  "github.com/gin-contrib/sessions"
 | 
			
		||||
  "github.com/gin-contrib/sessions/memcached"
 | 
			
		||||
  "github.com/gin-gonic/gin"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	r := gin.Default()
 | 
			
		||||
	store := memcached.NewStore(memcache.New("localhost:11211"), "", []byte("secret"))
 | 
			
		||||
	r.Use(sessions.Sessions("mysession", store))
 | 
			
		||||
  r := gin.Default()
 | 
			
		||||
  store := memcached.NewStore(memcache.New("localhost:11211"), "", []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")
 | 
			
		||||
  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")
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Binary protocol (with optional SASL authentication)
 | 
			
		||||
 | 
			
		||||
[embedmd]:# (example/memcached/binary.go go)
 | 
			
		||||
```go
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/gin-contrib/sessions"
 | 
			
		||||
	"github.com/gin-contrib/sessions/memcached"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"github.com/memcachier/mc"
 | 
			
		||||
  "github.com/gin-contrib/sessions"
 | 
			
		||||
  "github.com/gin-contrib/sessions/memcached"
 | 
			
		||||
  "github.com/gin-gonic/gin"
 | 
			
		||||
  "github.com/memcachier/mc"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	r := gin.Default()
 | 
			
		||||
	client := mc.NewMC("localhost:11211", "username", "password")
 | 
			
		||||
	store := memcached.NewMemcacheStore(client, "", []byte("secret"))
 | 
			
		||||
	r.Use(sessions.Sessions("mysession", store))
 | 
			
		||||
  r := gin.Default()
 | 
			
		||||
  client := mc.NewMC("localhost:11211", "username", "password")
 | 
			
		||||
  store := memcached.NewMemcacheStore(client, "", []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")
 | 
			
		||||
  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")
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### MongoDB
 | 
			
		||||
 | 
			
		||||
[embedmd]:# (example/mongo/main.go go)
 | 
			
		||||
```go
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/gin-contrib/sessions"
 | 
			
		||||
	"github.com/gin-contrib/sessions/mongo"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"github.com/globalsign/mgo"
 | 
			
		||||
  "github.com/gin-contrib/sessions"
 | 
			
		||||
  "github.com/gin-contrib/sessions/mongo"
 | 
			
		||||
  "github.com/gin-gonic/gin"
 | 
			
		||||
  "github.com/globalsign/mgo"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	r := gin.Default()
 | 
			
		||||
	session, err := mgo.Dial("localhost:27017/test")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		// handle err
 | 
			
		||||
	}
 | 
			
		||||
  r := gin.Default()
 | 
			
		||||
  session, err := mgo.Dial("localhost:27017/test")
 | 
			
		||||
  if err != nil {
 | 
			
		||||
    // handle err
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
	c := session.DB("").C("sessions")
 | 
			
		||||
	store := mongo.NewStore(c, 3600, true, []byte("secret"))
 | 
			
		||||
	r.Use(sessions.Sessions("mysession", store))
 | 
			
		||||
  c := session.DB("").C("sessions")
 | 
			
		||||
  store := mongo.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")
 | 
			
		||||
  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")
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### memstore
 | 
			
		||||
 | 
			
		||||
[embedmd]:# (example/memstore/main.go go)
 | 
			
		||||
```go
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
  "github.com/gin-contrib/sessions"
 | 
			
		||||
  "github.com/gin-contrib/sessions/memstore"
 | 
			
		||||
  "github.com/gin-gonic/gin"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
  r := gin.Default()
 | 
			
		||||
  store := memstore.NewStore([]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")
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### PostgreSQL
 | 
			
		||||
 | 
			
		||||
```go
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"database/sql"
 | 
			
		||||
	"github.com/gin-contrib/sessions"
 | 
			
		||||
	"github.com/gin-contrib/sessions/memstore"
 | 
			
		||||
	"github.com/gin-contrib/sessions/postgres"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	r := gin.Default()
 | 
			
		||||
	store := memstore.NewStore([]byte("secret"))
 | 
			
		||||
	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
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	r.Use(sessions.Sessions("mysession", store))
 | 
			
		||||
 | 
			
		||||
	r.GET("/incr", func(c *gin.Context) {
 | 
			
		||||
| 
						 | 
				
			
			@ -325,5 +365,3 @@ func main() {
 | 
			
		|||
	r.Run(":8000")
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue