Search code examples
goredisgo-gin

Configure gin-gonic session using Redis in Golang


I am using gin-gonic in Go and using Redis session feature provided in github.com/gin-gonic/contrib/sessions package

store, _ := sessions.NewRedisStore(10, "tcp", "localhost:6379", "", []byte("secret"))
router.Use(sessions.Sessions("workino_session", store))

How do I control how long these Sessions are stored in Redis?

Thank you.


Solution

  • Although the README is light on documentation, the GoDoc docs are a little more clear about this.

    Note that the gin-gonic sessions package uses gorilla/sessions underneath and shares the same options API.

    // We check for errors.
    store, err := sessions.NewRedisStore(10, "tcp", "localhost:6379", "", []byte("secret"))
    if err != nil {
        // Handle the error. Probably bail out if we can't connect.
    }
    
    // Ref: https://godoc.org/github.com/gin-gonic/contrib/sessions#Options
    store.Options = &sessions.Options{
        MaxAge: 86400,
        Path: "/",
        Secure: true,
        HttpOnly: true,
    }
    
    // Use the store once configured.
    router.Use(sessions.Sessions("workino_session", store))