# Consulta de estado de login

Este servicio permite al Frontend realizar un seguimiento en tiempo real del progreso del usuario. Se utiliza para detectar el momento exacto en que el usuario completa su validación en la aplicación de MIA o Identity Rail.

### Estrategia de Implementación

Dado que el proceso de login ocurre en una instancia separada, y hasta en otro dispositivo, el Frontend debe implementar un mecanismo de Polling (consultas periódicas) utilizando este servicio hasta que el estado cambie a Finalizado (`Y`) o se agote el tiempo (`T`).

### Especificación del Request

Es obligatorio enviar el identificador obtenido previamente para consultar su estado actual.

**Ejemplo de Cuerpo (JSON):**

```json
{
  "service": "LBMLoginStatusCheck",
  "params": {
    "lbmUUID": "https://ir-dev.miaid.me/?lbmUUID=a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6"
  }
}
```

***

### Especificación del Response

El estado se informa a través de un código de una sola letra en el campo `lbmLoginFinalizado`.

#### Definición de Campos en `result`

| **Campo**          | **Tipo** | **Longitud** | **Descripción**                         |
| ------------------ | -------- | ------------ | --------------------------------------- |
| lbmLoginFinalizado | String   | 1            | Estado actual de la solicitud de login. |

**Valores posibles de `lbmLoginFinalizado`**

* `Y` (Finalizado): El usuario completó el flujo exitosamente. Se puede proceder a la obtención del resultado.
* `N` (En proceso): El usuario aún no ha escaneado el QR o no ha terminado la validación.
* `T` (Timeout): El tiempo de validez del UUID ha expirado. Se debe generar un nuevo QR.

#### Ejemplo de Respuesta Exitosa

```json
{
  "status": {
    "code": 1,
    "errcode": 0,
    "errmsg": "",
    "origin": 10,
    "action": "",
    "id": 0
  },
  "result": [
    {
      "lbmLoginFinalizado": "Y"
    }
  ]
}
```

***

### Errores Específicos

Si el identificador enviado no es procesable, se retornará el siguiente error:

| **Gravedad** | **Código** | **Mensaje**        | **Descripción**                                                        |
| ------------ | ---------- | ------------------ | ---------------------------------------------------------------------- |
| E            | `56001`    | Código QR inválido | El UUID enviado no existe en los registros o el formato es incorrecto. |

***

{% hint style="info" %}

#### Recomendaciones de Polling

Para asegurar una buena experiencia de usuario y un uso eficiente de los recursos:

* **Frecuencia**: Se recomienda realizar la consulta cada 3 a 5 segundos.
* **Límite**: Si el servicio retorna repetidamente `N`, mantenga el polling durante un máximo de 2 minutos. Superado este tiempo, inicie el proceso nuevamente.
* **Interrupción**: Si recibe un estado `Y` o `T`, detenga inmediatamente el ciclo de consultas.
  {% endhint %}
