Documentación interna para desarrolladores. Esta página cubre la capa de autenticación, la estructura de la sesión, el cambio de organización y los flujos de invitación. No está destinado a usuarios finales.
Mapa de ruta
Controlador de autenticación siguiente
La ruta[...nextauth] es una envoltura delgada alrededor de @zappway/lib/auth:
@zappway/lib/auth. Esta ruta sólo se delega en ella.
Objeto de sesión (AppRouteRequest.session)
Todas las rutas autenticadas reciben un AppRouteRequest con un session completo:
Cambio de organización (update-org)
Los usuarios pueden pertenecer a varias organizaciones. El punto final update-org actualiza la organización activa en la sesión.
Flujo:
- El usuario selecciona una organización diferente en la interfaz de usuario.
POST /api/auth/update-orgse llama con el objetivoorganizationId- El servidor valida que el usuario sea miembro de esa organización.
- La cookie de sesión se actualiza con el nuevo contexto de la organización.
Flujo de invitación (invite)
Sincronización de administrador (admin-sync)
Punto final interno utilizado para sincronizar las membresías de organizaciones de nivel de administrador (por ejemplo, después de una actualización de plan). Se llama mediante webhooks de facturación a través de HTTP del lado del servidor (no desde el cliente).
withPermissionRoute Modos de autenticación
Utilice
authMode: 'lightweight' para todos los puntos finales de lectura para reducir la latencia.
Patrón de verificación de permisos
Problemas conocidos / Problemas
- Se requiere
runtime = "nodejs"en la ruta[...nextauth]: la biblioteca de autenticación utiliza API exclusivas de Node.js que no están disponibles en Edge Runtime. - Las cookies de sesión son HTTPOnly y tienen como ámbito el dominio. Nunca intentes leerlos desde JS del lado del cliente.
- El punto final
update-orgdebe invalidar cualquier conexión WebSocket/SSE activa para el usuario para que las actualizaciones en tiempo real reflejen el nuevo contexto de la organización. - La autenticación de enlace mágico (si está habilitada a través de la biblioteca) es manejada internamente por el proveedor de correo electrónico de NextAuth; no hay una ruta
verify-magic-linkseparada en esta aplicación.

