package helpers import ( "time" "github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2/middleware/session" "github.com/gofiber/storage/badger/v2" ) var store *session.Store var storeCreated bool func GetSessionStore(c *fiber.Ctx) (*session.Session, error) { if !storeCreated { config, err := GetConfig() if err != nil { var sess *session.Session return sess, err } storage := badger.New(badger.Config{ Database: config.Sessions.Location, Reset: false, GCInterval: 10 * time.Second, }) store = session.New(session.Config{ Storage: storage, Expiration: time.Hour, }) storeCreated = true } session, err := store.Get(c) if err != nil { return session, err } err = session.Save() if err != nil { return session, err } return store.Get(c) }