Autenticación API
La API de omegaUp utiliza autenticación basada en tokens para un acceso seguro a puntos finales protegidos.
Flujo de autenticación
sequenceDiagram
participant Client
participant API
participant Database
Client->>API: POST /api/user/login/
API->>Database: Validate credentials
Database-->>API: User data
API->>API: Generate auth_token
API-->>Client: Return auth_token
Client->>API: Request with ouat cookie
API->>API: Validate token
API-->>Client: Protected resource
Obtener un token de autenticación
Iniciar sesión en el punto final
Solicitud:
POST https://omegaup.com/api/user/login/
Content-Type: application/json
{
"usernameOrEmail": "user@example.com",
"password": "password"
}
{
"status": "ok",
"auth_token": "abc123def456..."
}
Usando el token
Incluya el token en una cookie denominada ouat (token de autenticación omegaUp):
curl -X POST https://omegaup.com/api/problem/create/ \
-H "Cookie: ouat=abc123def456..." \
-H "Content-Type: application/json" \
-d '{"title": "My Problem", ...}'
curl -X POST https://omegaup.com/api/problem/create/ \
-d "ouat=abc123def456..." \
-d "title=My Problem" \
...
Gestión de sesiones
Sesión activa única
omegaUp solo admite una sesión activa a la vez. Iniciar sesión mediante programación invalidará la sesión de su navegador y viceversa.
Consideraciones de seguridad
- Solo HTTPS: toda la comunicación API debe utilizar HTTPS
- Almacenamiento de tokens: almacene tokens de forma segura, nunca se comprometa con el control de versiones
- Caducidad del token: los tokens pueden caducar; manejar los errores de autenticación con gracia
Documentación relacionada
- API de usuarios - Puntos finales de administración de usuarios
- API REST - Información general de la API