Files
soft_usite/config/session.go
T
2025-04-24 02:07:47 +00:00

48 lines
1.1 KiB
Go
Executable File

package config
import (
"fmt"
"time"
"github.com/gofiber/session/v2"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
type SessionConfig struct {
Database string `yaml:"database" env:"SESSION_DATABASE"` // Ruta de la base de datos SQLite
*session.Session
}
func (s *SessionConfig) Setup() error {
// Abrir conexión a la base de datos SQLite
db, err := gorm.Open(sqlite.Open(s.Database), &gorm.Config{})
if err != nil {
return fmt.Errorf("failed to connect to the database: %v", err)
}
// Migrar la estructura de la tabla para sesiones
err = db.AutoMigrate(&Session{}) // Define la estructura de la sesión según sea necesario
if err != nil {
return fmt.Errorf("failed to migrate database: %v", err)
}
// Configurar el proveedor de sesiones en memoria
store := session.New() // Usar el proveedor de sesiones en memoria
// Crear una nueva sesión
s.Session = store
return nil
}
// Estructura para las sesiones (ajusta según tus necesidades)
type Session struct {
ID uint `gorm:"primaryKey"`
SessionID string `gorm:"unique"`
Data string `gorm:"type:text"`
CreatedAt time.Time
UpdatedAt time.Time
ExpireAt time.Time
}