pop-camarades/helpers/session.go

44 lines
797 B
Go

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
}
session.Set("test", time.Now())
session.Save()
return store.Get(c)
}