fix: sesión sin vencimiento práctico (90 años JWT + cookie persistente)
- JWT exp: 1 año → 90 años - Cookie Verify-Rest-Token: sin MaxAge (session cookie) → MaxAge 90 años - Session store: 1 año → 90 años Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
b3b6f6705d
commit
2ee5e2ea83
+3
-3
@@ -11,11 +11,11 @@ type SessionConfig struct {
|
|||||||
*session.Session
|
*session.Session
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setup configura el almacén de sesiones en memoria con expiración de 1 año.
|
// Setup configura el almacén de sesiones en memoria sin vencimiento práctico.
|
||||||
func (s *SessionConfig) Setup(db DatabaseDriver) error {
|
func (s *SessionConfig) Setup(db DatabaseDriver) error {
|
||||||
s.Session = session.New(session.Config{
|
s.Session = session.New(session.Config{
|
||||||
Expiration: 365 * 24 * time.Hour,
|
Expiration: 90 * 365 * 24 * time.Hour,
|
||||||
})
|
})
|
||||||
log.Println("[SESSION] Sesiones en memoria (expiran en 1 año o al reiniciar)")
|
log.Println("[SESSION] Sesiones en memoria (sin vencimiento práctico)")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-1
@@ -21,10 +21,11 @@ func (t *Token) CreateToken(c *fiber.Ctx, userID uint, secret string, expire ...
|
|||||||
|
|
||||||
claims := token.Claims.(jwt.MapClaims)
|
claims := token.Claims.(jwt.MapClaims)
|
||||||
claims["id"] = userID
|
claims["id"] = userID
|
||||||
|
const ninetyYears = int64(90 * 365 * 24 * 3600)
|
||||||
if len(expire) > 0 {
|
if len(expire) > 0 {
|
||||||
t.Expire = expire[0]
|
t.Expire = expire[0]
|
||||||
} else {
|
} else {
|
||||||
t.Expire = 31536000 // 1 año por defecto si no se configura
|
t.Expire = ninetyYears
|
||||||
}
|
}
|
||||||
expiresIn := time.Now().Add(time.Duration(t.Expire) * time.Second).Unix()
|
expiresIn := time.Now().Add(time.Duration(t.Expire) * time.Second).Unix()
|
||||||
claims["exp"] = expiresIn
|
claims["exp"] = expiresIn
|
||||||
@@ -37,6 +38,7 @@ func (t *Token) CreateToken(c *fiber.Ctx, userID uint, secret string, expire ...
|
|||||||
c.Cookie(&fiber.Cookie{
|
c.Cookie(&fiber.Cookie{
|
||||||
Name: "Verify-Rest-Token",
|
Name: "Verify-Rest-Token",
|
||||||
Value: tokenHash,
|
Value: tokenHash,
|
||||||
|
MaxAge: int(ninetyYears),
|
||||||
Secure: false,
|
Secure: false,
|
||||||
HTTPOnly: true,
|
HTTPOnly: true,
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user