Add session storage with Badger

This commit is contained in:
William Bouzourène 2024-12-22 11:39:04 +01:00
parent 949f78c069
commit 16ca31f27a
Signed by: bouzoure
SSH key fingerprint: SHA256:19MbXpLua4rUtk8tunMesD8KUKb91LXLHg8E/qTooww
5 changed files with 208 additions and 5 deletions

View file

@ -15,6 +15,9 @@ type Config struct {
Database struct {
Location string `env:"DATABASE_LOCATION"`
}
Sessions struct {
Location string `env:"SESSIONS_LOCATION"`
}
}
var configParsed bool

View file

@ -1,8 +1,11 @@
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
@ -10,8 +13,21 @@ var storeCreated bool
func GetSessionStore(c *fiber.Ctx) (*session.Session, error) {
if !storeCreated {
// TODO: Storage interface
store = session.New()
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,
})
storeCreated = true
}