En marcha en tres pasos
De la clave de API a la primera solicitud autenticada en menos de cinco minutos.
Crea una cuenta y registra un cliente OAuth en la consola de desarrolladores. Recibirás un client_id y un client_secret.
# Developer console
https://uniauth.id/account/developer
# Or via Admin API
POST /api/admin/oauth-clients
{
"name": "My App",
"redirect_uris": ["https://app.example/cb"]
}Usa el endpoint de token para intercambiar un código de autorización por un token de acceso y un token de ID.
curl -X POST https://uniauth.id/api/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=authorization_code" \
-d "code=AUTH_CODE" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_SECRET" \
-d "redirect_uri=https://app.example/cb" \
-d "code_verifier=PKCE_VERIFIER"El endpoint de token devuelve un token de acceso, un token de ID y un token de actualización. Usa el token de acceso para llamar a los endpoints protegidos.
{
"access_token": "eyJhbGci...",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "dGhpcyBpcyBh...",
"id_token": "eyJhbGci...",
"scope": "openid profile email"
}Endpoints de la API por categoría
32 endpoints organizados en seis grupos. Cada endpoint aplica limitación de velocidad, valida el Content-Type y devuelve objetos de error consistentes.
Autenticación
6 endpoints/api/auth/loginAutentica a un usuario con correo y contraseña. Devuelve un token de sesión y activa la 2FA si está habilitada.
/api/auth/registerCrea una nueva cuenta de usuario con correo, contraseña y campos de perfil opcionales.
/api/auth/logoutTermina la sesión actual, revoca los tokens y activa el cierre de sesión backchannel/frontchannel para los clientes OAuth.
/api/auth/forgot-passwordEnvía un correo de restablecimiento de contraseña con un token de duración limitada y hash SHA-256.
/api/auth/reset-passwordRestablece la contraseña con el token de forgot-password. Aplica el historial de contraseñas y las comprobaciones de robustez.
/api/auth/verify-emailConfirma la propiedad del correo mediante el token de verificación enviado durante el registro.
OAuth 2.0 / OIDC
6 endpoints/api/oauth/authorizeInicia el flujo de código de autorización de OAuth 2.0 con PKCE. Redirige al inicio de sesión y luego a la pantalla de consentimiento.
/api/oauth/tokenIntercambia un código de autorización por tokens, renueva tokens o gestiona los grants de device y client credentials.
/api/oauth/userinfoDevuelve los claims OIDC del usuario autenticado. Admite GET y POST según la sección 5.3.1 de OIDC Core.
/api/oauth/revokeRevoca un token de acceso o de actualización. Admite el parámetro token_type_hint.
/api/oauth/introspectInspecciona un token para determinar su estado activo, sus scopes y sus metadatos (RFC 7662).
/.well-known/openid-configurationDocumento de OIDC Discovery con todos los endpoints, scopes admitidos, claims y algoritmos.
Gestión de usuarios
4 endpoints/api/user/profileRecupera el perfil completo del usuario autenticado, incluidos los claims estándar de OIDC y las preferencias.
/api/user/profileActualiza los campos del perfil: nombre visible, biografía, configuración regional, enlaces sociales, dirección y más.
/api/user/sessionsLista todas las sesiones activas del usuario autenticado con información del dispositivo y última actividad.
/api/user/sessionsRevoca una sesión concreta por ID o todas las demás sesiones (invalidación por cambio de contraseña).
Organizaciones / Equipos
8 endpoints/api/user/organizationsCrea una organización en autoservicio. El creador pasa a ser propietario (máx. 10 organizaciones propias); empieza en el plan team.
/api/org/{id}/usersLista y gestiona los miembros y roles de la organización (owner/admin/member). Límite de 25 asientos en el plan team (HTTP 402 si se supera).
/api/org/{id}/invitationsInvita a un miembro por correo con aceptación mediante token. La capacidad se aplica tanto al invitar como al aceptar.
/api/org/{id}/groupsCrea y gestiona los grupos de la organización y sus miembros. Los nombres de grupo aparecen en el claim groups de OIDC.
/api/org/{id}/clients/{cid}/scim-tokenEmite o rota el token SCIM por cliente de una organización. Plan enterprise — en caso contrario devuelve 402 upgrade_required.
/api/org/{id}/domainsAñade y verifica un dominio personalizado para la organización. Plan enterprise — habilita el SSO y la captura por dominio.
/api/org/{id}/saml-idpsConfigura el SSO entrante: SP SAML e IdP federados OIDC (también /federated-idps). Plan enterprise.
/api/org/{id}/billingFacturación de Stripe por organización: estado de la suscripción, asientos y pago. Cada organización es su propio cliente, facturado por asiento.
Aprovisionamiento SCIM 2.0
4 endpoints/api/scim/v2/UsersLista o busca usuarios con la sintaxis de filtros SCIM. Admite paginación y proyección de atributos.
/api/scim/v2/UsersAprovisiona un nuevo usuario vía SCIM. Asigna el esquema de recurso de usuario SCIM a la tabla users de UniAuth.
/api/scim/v2/GroupsLista o busca grupos. Incluye referencias a los miembros y admite consultas con filtros.
/api/scim/v2/BulkEjecuta varias operaciones SCIM en una sola solicitud. Máximo 100 operaciones por lote.
Administración
4 endpoints/api/admin/usersLista todos los usuarios con paginación, búsqueda, filtro por rol y ordenación. Requiere rol de administrador o moderador.
/api/admin/analyticsRecupera las analíticas de la plataforma: DAU/WAU/MAU, tendencias de inicio de sesión, adopción de 2FA, desglose de métodos de autenticación.
/api/admin/audit-eventsConsulta el registro de auditoría a prueba de manipulaciones. Filtra por categoría, actor, objetivo, rango de fechas y tipo de evento.
/api/admin/webhooksRegistra un endpoint de webhook con suscripciones a eventos y secreto de firma HMAC-SHA256.
Métodos de autenticación de la API
Cuatro formas de autenticar las solicitudes a la API, según el endpoint y el caso de uso.
Envía el token de acceso en la cabecera Authorization. Se usa en endpoints protegidos por OAuth como userinfo, la introspección de tokens y las llamadas API de cliente a cliente.
GET /api/oauth/userinfo
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Accept: application/jsonLas solicitudes first-party usan una cookie HttpOnly, Secure, SameSite=Lax establecida tras el inicio de sesión. Se usa en las páginas de usuario y las API de cuenta/administración.
GET /api/user/profile
Cookie: auth_token=eyJhbGci...
# HttpOnly — not accessible via JS
# SameSite=Lax — CSRF protectionDPoP (RFC 9449) vincula los tokens a una clave de cliente específica. Envía el JWT de prueba DPoP junto con el token de acceso. Evita el robo y la reutilización de tokens.
GET /api/oauth/userinfo
Authorization: DPoP eyJhbGci...
DPoP: eyJ0eXAiOiJkcG9wK2p3dCIs...
# Proof JWT includes htm, htu, iat, jtiLos endpoints de aprovisionamiento SCIM se autentican mediante un token SCIM dedicado por cliente OAuth. El token se almacena como hash SHA-256 y está limitado a una organización.
GET /api/scim/v2/Users
Authorization: Bearer scim_token_abc123...
Content-Type: application/scim+jsonBibliotecas cliente oficiales
SDKs tipados para JavaScript y React con PKCE, ciclo de vida de tokens y cierre de sesión integrados.
SDK de JavaScript / TypeScript
@uniauth/js
Cliente JS vanilla con PKCE, descubrimiento OIDC, renovación automática de tokens, errores tipados y cierre de sesión con revocación. Funciona en Node.js y en el navegador.
npm install @uniauth/jsSDK de React
@uniauth/react
Provider de React, hooks y componentes listos para usar: UniAuthProvider, useUser, LoginButton, LogoutButton, ProtectedRoute y UserProfile.
npm install @uniauth/reactLímites de velocidad por endpoint
Todos los endpoints tienen límite de velocidad para proteger la plataforma. Los límites se reinician en una ventana deslizante de 15 minutos.
POST /api/auth/loginPOST /api/auth/registerPOST /api/auth/forgot-passwordPOST /api/auth/verify-*POST /api/scim/v2/BulkTodos los demás endpointsLas cabeceras de límite de velocidad (X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After) se incluyen en cada respuesta. Cuando Redis está configurado, los límites se aplican en todas las instancias del servidor.