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:Registrar Usuario
Crear una nueva cuenta de usuario.Parámetros de Consulta
Cuerpo de Solicitud
Ejemplo (Cliente Web)
Ejemplo (Cliente No Web)
Respuesta (Cliente Web)
Respuesta (Cliente No Web)
- Para clientes web: Se devuelve un
csrfTokeny el token de actualización se almacena en una cookie httpOnly. - Para clientes no web (
mobile,desktop,server): UnrefreshTokense devuelve directamente en la respuesta. Guárdalo de forma segura en tu cliente o servidor. - Usa
serverpara llamadores del lado del servidor de confianza, como aplicaciones SSR, BFF o CLI que no pueden depender de cookies del navegador. - Si
requireEmailVerificationestrue,accessTokeny los tokens seránnully 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
Cuerpo de Solicitud
Ejemplo (Cliente Web)
Ejemplo (Cliente No Web)
Respuesta (Cliente Web)
Respuesta (Cliente No Web)
- Para clientes web: Se devuelve un
csrfTokeny el token de actualización se almacena en una cookie httpOnly. Incluye elcsrfTokenen el encabezadoX-CSRF-Tokencuando llames a/api/auth/refresh. - Para clientes no web (
mobile,desktop,server): UnrefreshTokense devuelve directamente. Guárdalo de forma segura e inclúyelo en el cuerpo de la solicitud cuando llames a/api/auth/refresh.
Inicio de Sesión con OTP por Correo Electrónico
Usa este flujo sin contraseña cuando un usuario deba iniciar sesión con un código de 6 dígitos enviado a su correo electrónico.Enviar un Código de Inicio de Sesión
Cuerpo de Solicitud
202 Accepted con un mensaje genérico. No revela si el correo electrónico ya pertenece a un usuario.
Crear una Sesión con el Código
Parámetros de Consulta
Cuerpo de Solicitud
client_type que el inicio de sesión con contraseña.
- Los códigos caducan después de 5 minutos, solo pueden usarse una vez y se consumen después de tres intentos fallidos.
- InsForge no crea un usuario al enviar el código. Si el correo es nuevo, crea un usuario verificado sin contraseña solo después de verificarlo correctamente.
- Verificar un código para una cuenta existente no verificada elimina su contraseña almacenada, dejando la cuenta sin contraseña.
- Si el registro público está deshabilitado, un usuario existente todavía puede iniciar sesión. Un código válido para un correo desconocido se consume y devuelve HTTP 403.
Actualizar Token
Actualizar token de acceso usando token de actualización.Parámetros de Consulta
Encabezados (Cliente Web)
Cuerpo de Solicitud (Cliente No Web)
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
csrfTokenque debe usarse para solicitudes de actualización posteriores. - Clientes no web (
mobile,desktop,server): Cada actualización devuelve un nuevorefreshToken. Debes persistir este nuevo token y usarlo para la siguiente actualización. Actualiza elaccessTokenen 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/refreshcuando 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
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
Ejemplo
Respuesta
Verificar Correo Electrónico
Parámetros de Consulta
Cuerpo de Solicitud
Para verificación basada en enlace, los clics de correo electrónico utilizan:
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 sonsuccessoerror.insforge_type: Identificador de flujo. Para enlaces de verificación, esto es siempreverify_email.insforge_error: Presente solo cuandoinsforge_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. Cuandoinsforge_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
redirectTono está en la lista de permitidos, InsForge devuelve un error400cuyo mensaje incluye la URL rechazada, ynextActionste dice que la agregues aallowedRedirectUrls.
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
Ejemplo
Intercambiar Código por Token (Solo Método de Código)
Cuerpo de Solicitud
Ejemplo
Respuesta
Restablecer Contraseña
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 cuandoinsforge_status=ready. Pasa este valor aPOST /api/auth/email/reset-passwordcomootp.insforge_status: Resultado del flujo de enlace del navegador. Para enlaces de restablecimiento, los valores sonreadyoerror.insforge_type: Identificador de flujo. Para enlaces de restablecimiento, esto es siemprereset_password.insforge_error: Presente solo cuandoinsforge_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=readyytokenestá presente.
Cuerpo de Solicitud
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
Parámetros de Consulta
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
googlegithubdiscordlinkedinfacebookapplemicrosoftxspotify- Cualquier clave de proveedor personalizada devuelta por
GET /api/auth/public-configencustomOAuthProviders
Ejemplo
Respuesta
Devolución de llamada OAuth
Después de que el usuario se autentica con el proveedor, será redirigido a turedirect_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
Cuerpo de Solicitud
Ejemplo
Respuesta
- Para clientes web: El
refreshTokenseránully se devuelve uncsrfToken. El token de actualización se almacena en una cookie httpOnly. - Para clientes no web (
mobile,desktop,server): UnrefreshTokense 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 rolproject_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
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:/oauth2redirectomyapp://auth/callback. - Si
allowedRedirectUrlsestá 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
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
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 httpOnlyinsforge_admin_refresh_token solo del panel y no comparte la cookie de actualización de aplicación/usuario.