gin-contrib / sessions

Gin middleware for session management
MIT License
1.43k stars 194 forks source link

How can i set the sessions path? #123

Open snowdream opened 4 years ago

snowdream commented 4 years ago

My session config is as follows:

package middlewares

import (
    "github.com/boj/redistore"
    "github.com/gin-contrib/sessions"
    "github.com/gin-contrib/sessions/redis"
    "github.com/gin-gonic/gin"
)

var store redis.Store

func init() {
    // store, _ = redis.NewStore(10, "tcp", "127.0.0.1:8631", "&uaRXq*tgZYRsg{Rt6&", []byte("secret"))
    store, _ = redis.NewStore(10, "tcp", "127.0.0.1:6379", "", []byte("secret"))
    store.Options(sessions.Options{
        Path:   "/",
        MaxAge: 3600,
        Secure: false,
        // Secure:   true,
        HttpOnly: false})

    err, redisStore := redis.GetRedisStore(store)

    if err == nil {
        redisStore.SetSerializer(redistore.GobSerializer{})

        // redisStore.SetSerializer(redistore.JSONSerializer{})
    }
}

// Sessions Sessions
func Sessions() gin.HandlerFunc {
    return sessions.Sessions("gsessionid", store)
}

But, My cookies' path is not "/",Why? image

leopku commented 3 years ago

Try to apply options to session level but not store level.

session := sessions.Default(ctx)
session.Options(sessions.Options{
  Path: '/',
  MaxAge: 3600*24,
  HttpOnly: true,
})

session.Set("key", "value")
session.Save()