Saltar a contenido

Autenticacion JWT

Configuracion

Propiedad Descripcion Default
application.security.jwt.secret-key Clave secreta (Base64, 64 chars) -
application.security.jwt.expiration Expiracion access token (ms) 86400000 (24h)
application.security.jwt.refresh-token.expiration Expiracion refresh token (ms) 604800000 (7d)

Estructura del Token

{
  "id": 1,
  "name": "Nombre del Usuario",
  "sub": "usuario@ejemplo.com",
  "iat": 1234567890,
  "exp": 1234654290
}

Uso del Token

Header de Autorizacion

Todos los endpoints protegidos requieren:

Authorization: Bearer eyJhbGciOiJIUzI1NiJ9...

Endpoints Publicos

Metodo Ruta
POST /auth/registrar
POST /auth/acceder
POST /auth/refrescar

Endpoints Protegidos

Todos los demas requieren JWT valido:

  • /api/v2/users
  • /api/v2/grupo-proceso-firma/**
  • /api/v2/ssigner/**
  • /api/v2/documento/**

Flujo de Autenticacion

sequenceDiagram
    participant U as Usuario
    participant A as API

    U->>A: POST /auth/registrar
    A-->>U: {jwtToken, refreshToken}

    U->>A: POST /auth/acceder
    A-->>U: {jwtToken, refreshToken}

    Note over U: Usar jwtToken en header

    U->>A: GET /api/v2/...
    A-->>U: Response

    Note over U: Cuando expira jwtToken

    U->>A: POST /auth/refrescar
    A-->>U: {nuevo jwtToken, refreshToken}

    U->>A: POST /auth/logout
    A-->>U: Token invalidado

Invalidaacion de Tokens

Los tokens se almacenan en la tabla tokens de la base de datos. Un token es invalido si:

  • revoked = true
  • expired = true
  • No existe en la base de datos