# sessions

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

## EOL-warning

**This package has been abandoned on 2016-12-07. Please use [gin-contrib/sessions](https://github.com/gin-contrib/sessions) instead.**

## Examples

#### cookie-based

```go
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

```go
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")
}
```
