Flujo de Autenticación y Obtención del Token de Socket
Para integrar un hardware o sensor externo, la autenticación se realiza en dos pasos sencillos. Este proceso se efectúa una sola vez durante el aprovisionamiento o configuración inicial del dispositivo.
🔒 NOTA IMPORTANTE SOBRE LA EXPIRACIÓN DEL TOKEN: El Token del Socket (
socketAuthToken) NO caduca. Por lo tanto, el dispositivo solo debe autenticarse una única vez al configurarse por primera vez, guardar el token de manera segura en su almacenamiento no volátil (memoria Flash, EEPROM o archivo de configuración) y reutilizarlo directamente en todas las conexiones WebSocket posteriores.
📌 Paso 1: Login de Usuario / Aprovisionamiento (POST /auth/login)
En este primer paso, el usuario o integrador envía las credenciales proporcionadas para obtener el token inicial y consultar el ID de la empresa (companyId).
Especificaciones del Endpoint
- Método:
POST - Ruta:
/auth/login - Ejemplo URL:
https://api.improvemeter.com/auth/login - Headers:
Content-Type: application/json
Cuerpo de la Solicitud (Payload JSON)
{
"email": "sensor.integracion@empresa.com",
"password": "TuPasswordSegura"
}
Respuesta del Servidor
{
"success": true,
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": "uuid-usuario",
"email": "sensor.integracion@empresa.com"
},
"companies": [
{
"id": "c8f3e2a1-9b4d-4e12-890a-123456789abc",
"name": "Planta Industrial Ecoqualit"
}
]
}
}
- Guarde el
tokende la respuesta y elidde la empresa elegida (companyId).
📌 Paso 2: Generar Token Permanente de Socket (POST /auth/login-for-socket)
Con el token del usuario obtenido en el Paso 1 y el companyId, solicite el token permanente para el socket.
Especificaciones del Endpoint
- Método:
POST - Ruta:
/auth/login-for-socket - Ejemplo URL:
https://api.improvemeter.com/auth/login-for-socket - Headers:
Authorization: Bearer <TOKEN_PASO_1>Content-Type: application/json
Cuerpo de la Solicitud (Payload JSON)
{
"companyId": "c8f3e2a1-9b4d-4e12-890a-123456789abc"
}
Respuesta del Servidor
{
"success": true,
"data": {
"authToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SOCKET_TOKEN_PERMANENTE..."
}
}
💾 Paso 3: Almacenamiento Seguro del Token
Guarde el valor de data.authToken (socketAuthToken) en la memoria o configuración local de su dispositivo sensor.
En las siguientes conexiones WebSocket al namespace /oee, el dispositivo usará directamente este token en el handshake de Socket.io, omitiendo los Pasos 1 y 2.