Skip to main content

Endpoint

POST /api/token/
Autentica un usuario y devuelve tokens JWT (access y refresh) junto con información del usuario.

Autenticación

Este endpoint NO requiere autenticación. Es el punto de entrada para obtener tokens.

Request

Body Parameters

email
string
required
Correo electrónico del usuario registrado
password
string
required
Contraseña del usuario

Ejemplo

curl -X POST http://localhost:8000/api/token/ \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "password": "mi_contraseña"
  }'

Response

Success (200 OK)

access
string
Token JWT de acceso (corta duración, ~15-30 minutos)
refresh
string
Token JWT de refresco (larga duración, ~1-7 días)
user
object
Información del usuario autenticado
{
  "access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
  "refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
  "user": {
    "id": 1,
    "email": "[email protected]",
    "nombre": "Juan Pérez",
    "rol": "sys_admin"
  }
}

Error Responses

404 Not Found

El correo electrónico no existe en el sistema.
{
  "detail": "Correo no encontrado"
}

401 Unauthorized

La contraseña es incorrecta.
{
  "detail": "Contraseña incorrecta"
}

Implementación

Este endpoint está implementado en CustomTokenObtainPairView que extiende TokenObtainPairView de djangorestframework_simplejwt. El serializador personalizado CustomTokenObtainPairSerializer agrega la información del usuario a la respuesta JWT estándar.

Uso del token

Una vez obtenido el token de acceso, inclúyalo en el header Authorization de todas las peticiones subsecuentes:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...
El token de acceso expira después de un tiempo configurable. Use el token de refresco para obtener nuevos tokens de acceso sin requerir credenciales nuevamente.

Ver también

Token Refresh

Renovar tokens expirados

Roles de usuario

Entender los roles del sistema

Build docs developers (and LLMs) love