Saltar al contenido principal

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 token de la respuesta y el id de 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.