Integración de backend
El Eixam Flutter SDK depende de un backend del partner para proporcionar sesiones firmadas y dar soporte a los endpoints operacionales clave.
Qué debe proporcionar el backend del partner
- Una sesión SDK firmada (
appId,externalUserId,userHash) - Soporte de identidad canónica vía
GET /v1/sdk/me - Soporte MQTT operacional para SOS y telemetría
- Soporte HTTP transaccional para cancelación de SOS
- Superficies de contactos y registro de dispositivos de backend
Flujo de firma
El backend del partner posee el secreto de la app y firma la identidad del usuario. El paso de firma debe ocurrir en el servidor — nunca en el cliente móvil.
| Paso | Actor |
|---|---|
| Almacenar el secreto de la app | Backend del partner |
Generar userHash para appId + externalUserId | Backend del partner |
| Enviar la sesión firmada a la app móvil | Backend del partner |
| Bootstrap con la sesión firmada | App móvil |
| Reutilizar identidad para HTTP y MQTT | SDK |
Consulta Identity Signing (JS) para ejemplos de implementación en el servidor.
Contrato de sesión firmada
const EixamSession.signed(
appId: 'partner-app',
externalUserId: 'partner-user-123',
userHash: 'signed-session-hash',
)
Endpoints operacionales
| Operación | Transporte |
|---|---|
| Enriquecimiento de sesión | GET /v1/sdk/me |
| Activación de SOS | Operacional (MQTT) |
| Cancelación de SOS | POST /v1/sdk/sos/cancel |
| Rehidratación de SOS activo | GET /v1/sdk/sos |
| Telemetría | Operacional (MQTT) |
| Dispositivos y contactos | HTTP |
Autenticación
HTTP
X-App-ID: <appId>
X-User-ID: <externalUserId>
Authorization: Bearer <userHash>
MQTT (sin prefijo Bearer)
username: sdk:<appId>:<externalUserId>
password: <userHash>
nota
El SDK no llama a rutas de autenticación o firma del partner, ni calcula la firma localmente.