Update session.go
This commit is contained in:
+15
-4
@@ -1,6 +1,7 @@
|
|||||||
package config
|
package config
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"log"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gofiber/session/v2"
|
"github.com/gofiber/session/v2"
|
||||||
@@ -12,10 +13,16 @@ type SessionConfig struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Setup configura el almacén de sesiones en PostgreSQL con expiración de 1 año.
|
// Setup configura el almacén de sesiones en PostgreSQL con expiración de 1 año.
|
||||||
|
// Si el provider PostgreSQL falla (credenciales, red, etc.), usa memoria como fallback.
|
||||||
func (s *SessionConfig) Setup(db DatabaseDriver) error {
|
func (s *SessionConfig) Setup(db DatabaseDriver) error {
|
||||||
|
port := int64(db.Port)
|
||||||
|
if port == 0 {
|
||||||
|
port = 5432
|
||||||
|
}
|
||||||
|
|
||||||
provider, err := pgprovider.New(pgprovider.Config{
|
provider, err := pgprovider.New(pgprovider.Config{
|
||||||
Host: db.Host,
|
Host: db.Host,
|
||||||
Port: int64(db.Port),
|
Port: port,
|
||||||
Username: db.Username,
|
Username: db.Username,
|
||||||
Password: db.Password,
|
Password: db.Password,
|
||||||
Database: db.DBName,
|
Database: db.DBName,
|
||||||
@@ -25,13 +32,17 @@ func (s *SessionConfig) Setup(db DatabaseDriver) error {
|
|||||||
ConnMaxLifetime: 5 * time.Minute,
|
ConnMaxLifetime: 5 * time.Minute,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
log.Printf("[SESSION] PostgreSQL provider error, usando memoria: %v", err)
|
||||||
|
s.Session = session.New(session.Config{
|
||||||
|
Expiration: 365 * 24 * time.Hour,
|
||||||
|
})
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
s.Session = session.New(session.Config{
|
s.Session = session.New(session.Config{
|
||||||
Expiration: 365 * 24 * time.Hour, // 1 año
|
Expiration: 365 * 24 * time.Hour,
|
||||||
Provider: provider,
|
Provider: provider,
|
||||||
})
|
})
|
||||||
|
log.Println("[SESSION] Sesiones persistentes en PostgreSQL (tabla: sessions)")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user