API
Introducción
La API del sistema utiliza autenticación basada en JWTs (JSON Web Tokens), un método auto-contido que no requiere almacenamiento de índices de tokens u otras formas de almacenamiento.
Tipos de Token
| Tipo | Descripción |
|---|---|
| Token de Autenticación | Creado por el Cliente API para autenticación y obtención del Token de Acceso |
| Token de Acceso | Creado por el Sistema para acceder a recursos de la API |
Flujos de API
Flujo de autenticación
sequenceDiagram
participant Client as API Client
participant Auth as Authentication Endpoint
participant API as API
Client->>Auth: Assina o JWT e envia ao Auth Endpoint
Auth->>Auth: Decodifica o JWT e verifica a assinatura
alt JWT Válido
Auth->>Client: Cria e envia um JWT de acesso
Client->>API: Armazena o JWT e utiliza no acesso à API
API->>API: Verifica a autenticidade do token
alt Token Válido
API->>Client: Libera acesso e envia ao API Client
else Token Inválido
API->>API: Fim
end
else JWT Inválido
Auth->>Auth: Fim
end
Client->>Client: Finaliza a requisição
Flujo de Refresh
sequenceDiagram
participant Client as API Client
participant Auth as Authentication Endpoint
participant API as API
alt Token próximo de expirar?
Client->>Auth: Envia um JWT de autorização ainda não expirado
Auth->>Auth: Verifica a autenticidade do token
alt Token Válido
Auth->>Client: Cria e envia um JWT de acesso
Client->>Client: Armazena o JWT para uso
else Token Inválido
Auth->>Auth: Fim
end
else Token não próximo de expirar
Client->>API: Utiliza o token e envia a requisição
API->>API: Verifica a autenticidade do token
alt Token Válido
API->>Client: Libera acesso e envia resposta
else Token Inválido
API->>API: Fim
end
end
Client->>Client: Finaliza a requisição
Los tokens tienen tiempo de caducidad configurable (máximo 24h). Tokens válidos se pueden usar para solicitar nuevos tokens vía refresh.
Consideraciones Finales
La implementación de JWTs ofrece un método seguro y eficiente de autenticación, eliminando la necesidad de almacenamiento de estados en el servidor. El sistema de refresh permite mantener sesiones activas de forma segura, mientras que el límite de 24h garantiza la renovación periódica de las credenciales.
