Saltar al contenido principal

Descripción General

La API de Autenticación proporciona puntos finales para registro de usuario, inicio de sesión, verificación de correo electrónico, restablecimiento de contraseña e integración de OAuth.

Encabezados

Para invocaciones de funciones autenticadas:
Para puntos finales de administrador:

Registrar Usuario

Crear una nueva cuenta de usuario.

Parámetros de Consulta

ParámetroTipoRequeridoDescripción
client_typestringNoTipo de cliente: web (predeterminado), mobile, desktop o server

Cuerpo de Solicitud

CampoTipoRequeridoDescripción
emailstringDirección de correo electrónico del usuario
passwordstringContraseña (debe cumplir los requisitos configurados)
namestringNoNombre para mostrar del usuario
redirectTostringNoSe utiliza para verificación de correo electrónico basada en enlace. El enlace de correo electrónico siempre abre primero un punto final del servidor InsForge; después de verificar el token, InsForge redirige el navegador a esta URL con el resultado de la verificación. Requerido cuando verifyEmailMethod es link. Esta URL debe incluirse en allowedRedirectUrls. Recomendado: utiliza la página de inicio de sesión de tu aplicación.

Ejemplo (Cliente Web)

Ejemplo (Cliente No Web)

Respuesta (Cliente Web)

Respuesta (Cliente No Web)

  • Para clientes web: Se devuelve un csrfToken y el token de actualización se almacena en una cookie httpOnly.
  • Para clientes no web (mobile, desktop, server): Un refreshToken se devuelve directamente en la respuesta. Guárdalo de forma segura en tu cliente o servidor.
  • Usa server para llamadores del lado del servidor de confianza, como aplicaciones SSR, BFF o CLI que no pueden depender de cookies del navegador.
  • Si requireEmailVerification es true, accessToken y los tokens serán null y el usuario debe verificar su correo electrónico antes de iniciar sesión.

Iniciar Sesión

Autenticar usuario y obtener token de acceso.

Parámetros de Consulta

ParámetroTipoRequeridoDescripción
client_typestringNoTipo de cliente: web (predeterminado), mobile, desktop o server

Cuerpo de Solicitud

CampoTipoRequeridoDescripción
emailstringDirección de correo electrónico del usuario
passwordstringContraseña del usuario

Ejemplo (Cliente Web)

Ejemplo (Cliente No Web)

Respuesta (Cliente Web)

Respuesta (Cliente No Web)

  • Para clientes web: Se devuelve un csrfToken y el token de actualización se almacena en una cookie httpOnly. Incluye el csrfToken en el encabezado X-CSRF-Token cuando llames a /api/auth/refresh.
  • Para clientes no web (mobile, desktop, server): Un refreshToken se devuelve directamente. Guárdalo de forma segura e inclúyelo en el cuerpo de la solicitud cuando llames a /api/auth/refresh.

Actualizar Token

Actualizar token de acceso usando token de actualización.

Parámetros de Consulta

ParámetroTipoRequeridoDescripción
client_typestringNoTipo de cliente: web (predeterminado), mobile, desktop o server

Encabezados (Cliente Web)

EncabezadoTipoRequeridoDescripción
X-CSRF-TokenstringToken CSRF recibido de la respuesta de inicio de sesión/registro

Cuerpo de Solicitud (Cliente No Web)

CampoTipoRequeridoDescripción
refreshTokenstringToken de actualización recibido de la respuesta de inicio de sesión/registro

Ejemplo (Cliente Web)

Ejemplo (Cliente No Web)

Respuesta (Cliente Web)

Respuesta (Cliente No Web)

La rotación de token se implementa para la seguridad:
  • Clientes web: Cada actualización devuelve un nuevo csrfToken que debe usarse para solicitudes de actualización posteriores.
  • Clientes no web (mobile, desktop, server): Cada actualización devuelve un nuevo refreshToken. Debes persistir este nuevo token y usarlo para la siguiente actualización. Actualiza el accessToken en memoria.

Cerrar Sesión

Cerrar sesión y borrar cookie de token de actualización.

Ejemplo

Respuesta


Obtener Usuario Actual

Obtener información del usuario autenticado actual desde el token JWT. Este punto final de REST no actualiza automáticamente tokens de acceso expirados.
  • Para clientes REST sin procesar, llama a POST /api/auth/refresh cuando sea necesario.
  • Para aplicaciones de navegador usando el SDK de TypeScript, llama a auth.getCurrentUser() durante el inicio. El SDK utilizará automáticamente la cookie de actualización httpOnly cuando pueda actualizar la sesión.
  • Este comportamiento de actualización automática es solo para navegadores. Los clientes servidor, móvil y otros no navegadores deben actualizar explícitamente.

Ejemplo

Respuesta


Actualizar Perfil

Actualizar el perfil del usuario actual.

Cuerpo de Solicitud

CampoTipoRequeridoDescripción
profileobjectDatos de perfil (nombre, URL de avatar, campos personalizados)

Ejemplo

Respuesta


Obtener Perfil de Usuario

Obtener información de perfil público para un usuario por ID.

Ejemplo

Respuesta


Verificación de Correo Electrónico

Enviar Correo Electrónico de Verificación

Cuerpo de Solicitud

CampoTipoRequeridoDescripción
emailstringDirección de correo electrónico del usuario
redirectTostringNoSe utiliza para verificación de correo electrónico basada en enlace. El enlace de correo electrónico siempre abre primero un punto final del servidor InsForge; después de verificar el token, InsForge redirige el navegador a esta URL con el resultado de la verificación. Requerido cuando verifyEmailMethod es link. Esta URL debe incluirse en allowedRedirectUrls. Recomendado: utiliza la página de inicio de sesión de tu aplicación.

Ejemplo

Respuesta

Verificar Correo Electrónico

Parámetros de Consulta

ParámetroTipoRequeridoDescripción
client_typestringNoTipo de cliente: web (predeterminado), mobile, desktop o server

Cuerpo de Solicitud

CampoTipoRequeridoDescripción
emailstringDirección de correo electrónico del usuario
otpstringCódigo de verificación de 6 dígitos
Para verificación basada en enlace, los clics de correo electrónico utilizan:
Este flujo orientado al navegador verifica el token en el servidor y redirige a la URL redirectTo almacenada. POST /api/auth/email/verify es la API JSON para envíos de código de 6 dígitos. Maneja el redireccionamiento del navegador de esta manera:
  • Éxito: ?insforge_status=success&insforge_type=verify_email
  • Error: ?insforge_status=error&insforge_type=verify_email&insforge_error=...
  • insforge_status: Resultado del flujo de enlace del navegador. Para verificación, los valores son success o error.
  • insforge_type: Identificador de flujo. Para enlaces de verificación, esto es siempre verify_email.
  • insforge_error: Presente solo cuando insforge_status=error. Mensaje de error legible por humanos para mostrar o registrar.
  • Manejo recomendado: utiliza tu página de inicio de sesión como redirectTo. Cuando insforge_status=success, muestra un mensaje de confirmación y pide al usuario que inicie sesión con su correo electrónico y contraseña.
  • Si redirectTo no está en la lista de permitidos, InsForge devuelve un error 400 cuyo mensaje incluye la URL rechazada, y nextActions te dice que la agregues a allowedRedirectUrls.

Ejemplo (Cliente Web)

Ejemplo (Cliente No Web)

Respuesta (Cliente Web)

Respuesta (Cliente No Web)


Restablecer Contraseña

Enviar Correo Electrónico de Restablecimiento

Cuerpo de Solicitud

CampoTipoRequeridoDescripción
emailstringDirección de correo electrónico del usuario
redirectTostringNoSe utiliza para restablecimiento de contraseña basado en enlace. El enlace de correo electrónico siempre abre primero un punto final del servidor InsForge; luego InsForge redirige el navegador a esta URL con el token de restablecimiento en la cadena de consulta para que tu aplicación pueda renderizar su propia página de restablecimiento de contraseña. Requerido cuando resetPasswordMethod es link. Esta URL debe incluirse en allowedRedirectUrls. Recomendado: utiliza la página de restablecimiento de contraseña dedicada de tu aplicación.

Ejemplo

Intercambiar Código por Token (Solo Método de Código)

Cuerpo de Solicitud

CampoTipoRequeridoDescripción
emailstringDirección de correo electrónico del usuario
codestringCódigo de 6 dígitos del correo electrónico

Ejemplo

Respuesta

Restablecer Contraseña

Para restablecimiento de contraseña basado en enlace, los clics de correo electrónico utilizan:
Este flujo orientado al navegador valida el token en el servidor y redirige a la URL redirectTo almacenada con el token de restablecimiento en la cadena de consulta. POST /api/auth/email/reset-password sigue siendo la API JSON que acepta la nueva contraseña. Maneja el redireccionamiento del navegador de esta manera:
  • Listo para restablecer: ?token=...&insforge_status=ready&insforge_type=reset_password
  • Error: ?insforge_status=error&insforge_type=reset_password&insforge_error=...
  • token: Presente solo cuando insforge_status=ready. Pasa este valor a POST /api/auth/email/reset-password como otp.
  • insforge_status: Resultado del flujo de enlace del navegador. Para enlaces de restablecimiento, los valores son ready o error.
  • insforge_type: Identificador de flujo. Para enlaces de restablecimiento, esto es siempre reset_password.
  • insforge_error: Presente solo cuando insforge_status=error. Mensaje de error legible por humanos para mostrar o registrar.
  • Tu aplicación solo debe renderizar el formulario de restablecimiento de contraseña cuando insforge_status=ready y token está presente.

Cuerpo de Solicitud

CampoTipoRequeridoDescripción
newPasswordstringNueva contraseña
otpstringToken de restablecimiento de la URL de enlace mágico o punto final de intercambio de código

Ejemplo

Respuesta


Autenticación OAuth

La autenticación OAuth ahora usa el flujo PKCE (Proof Key for Code Exchange) para mayor seguridad. En lugar de devolver tokens directamente en la URL de redireccionamiento, se devuelve un código de autorización que debe intercambiarse por tokens.

Iniciar Flujo OAuth

Para proveedores personalizados configurados en el panel, utiliza:

Parámetros de Consulta

ParámetroTipoRequeridoDescripción
redirect_uristringURL a la que redirigirse después de la autenticación
code_challengestringDesafío de código PKCE (hash SHA256 codificado en base64 de code_verifier)
Otros parámetros de cadena de consultastringNoPistas OAuth específicas del proveedor, como prompt=select_account de Google
Los parámetros de consulta adicionales se reenvían como pistas específicas del proveedor solo cuando no entran en conflicto con campos OAuth propiedad del servidor. No pases client_id, redirect_uri, code_challenge, state, response_type o scope; los valores generados por InsForge/proveedor ganan y los valores del cliente que entran en conflicto se ignoran.

Proveedores Admitidos

  • google
  • github
  • discord
  • linkedin
  • facebook
  • apple
  • microsoft
  • x
  • spotify
  • Cualquier clave de proveedor personalizada devuelta por GET /api/auth/public-config en customOAuthProviders

Ejemplo

Respuesta

Devolución de llamada OAuth

Después de que el usuario se autentica con el proveedor, será redirigido a tu redirect_uri con un código de autorización:
El insforge_code es un código de autorización temporal que debe intercambiarse por tokens usando el punto final /api/auth/oauth/exchange.

Intercambiar Código por Tokens

Intercambiar el código de autorización por tokens de acceso y actualización.

Parámetros de Consulta

ParámetroTipoRequeridoDescripción
client_typestringNoTipo de cliente: web (predeterminado), mobile, desktop o server

Cuerpo de Solicitud

CampoTipoRequeridoDescripción
codestringEl insforge_code recibido en la devolución de llamada
code_verifierstringEl code_verifier original usado para generar el code_challenge

Ejemplo

Respuesta

  • Para clientes web: El refreshToken será null y se devuelve un csrfToken. El token de actualización se almacena en una cookie httpOnly.
  • Para clientes no web (mobile, desktop, server): Un refreshToken se devuelve directamente. Guárdalo de forma segura.

Ejemplo de Flujo OAuth Completo (No Web)


Configuración Pública

Obtener configuración de autenticación pública (no requiere autenticación).

Ejemplo

Respuesta


Puntos Finales de Administrador

Estos puntos finales requieren rol project_admin.

Listar Todos los Usuarios

Obtener Usuario por ID

Eliminar Usuarios

Generar Token Anónimo

Obtener Configuración de Autenticación

Obtener configuración actual de autenticación (solo administrador).

Ejemplo

Respuesta

Las entradas allowedRedirectUrls coinciden con el valor completo de redirectTo, incluyendo esquema, host, puerto opcional y ruta.
  • Las entradas exactas deben coincidir exactamente, como https://myapp.com/dashboard.
  • Los comodines se admiten solo en la porción del host, como https://*.myapp.com/callback.
  • Los enlaces profundos se permiten cuando se enumeran explícitamente, como com.example.app:/oauth2redirect o myapp://auth/callback.
  • Si allowedRedirectUrls está vacío, InsForge permite todos los redireccionamientos por conveniencia del desarrollador. Esto no es seguro para producción y debe evitarse fuera del desarrollo local.

Actualizar Configuración de Autenticación

Actualizar configuración de autenticación (solo administrador).

Cuerpo de Solicitud

CampoTipoRequeridoDescripción
requireEmailVerificationbooleanNoSi se requiere verificación de correo electrónico
passwordMinLengthintegerNoLongitud mínima de contraseña (4-128)
requireNumberbooleanNoRequiere números en la contraseña
requireLowercasebooleanNoRequiere minúsculas en la contraseña
requireUppercasebooleanNoRequiere mayúsculas en la contraseña
requireSpecialCharbooleanNoRequiere caracteres especiales en la contraseña
verifyEmailMethodstringNoMétodo de verificación de correo electrónico (code o link)
resetPasswordMethodstringNoMétodo de restablecimiento de contraseña (code o link)
allowedRedirectUrlsarrayNoLista de URL de redireccionamiento permitidas. Las entradas coinciden con el valor completo de redirectTo. Las URL exactas deben coincidir exactamente, se admiten comodines de host como https://*.domain.com/callback, y los enlaces profundos personalizados como com.example.app:/oauth2redirect se permiten cuando se enumeran explícitamente. Si está vacío, se permiten todos los redireccionamientos, lo que no es seguro para producción.

Ejemplo

Intercambiar Sesión de Administrador

Intercambiar código de autorización del proveedor en la nube por una sesión de administrador.

Cuerpo de Solicitud

CampoTipoRequeridoDescripción
codestringCódigo de autorización o JWT de Insforge Cloud

Ejemplo

Respuesta

Obtener Sesión de Administrador Actual

Obtener la sesión de administrador del panel actual desde un token de acceso de administrador del proyecto.

Respuesta

Actualizar Sesión de Administrador

Actualizar token de acceso de administrador del panel. Este punto final utiliza la cookie httpOnly insforge_admin_refresh_token solo del panel y no comparte la cookie de actualización de aplicación/usuario.

Cerrar Sesión de Administrador


Respuestas de Error

Credenciales Inválidas (401)

Usuario Ya Existe (409)

Correo Electrónico No Verificado (403)