Portales Web
Recoge el payload cifrado del navegador con el SDK JavaScript y reenvíalo a tu backend para que lo registre en SmartID.
Antes de integrar, instala el SDK en Getting Started → Instalar el SDK →
personalization_raw
Recoge la huella del navegador y dispositivo de forma síncrona y devuelve el payload codificado como string. Llama este método en el onload de la página de login.
// call on page load, before the user submits credentials
const smartidData = personalization_raw();
// attach to the hidden input — empty string if the call returned nothing
document.getElementById('smartid-data').value = smartidData || ''; Si utilizas la regla de Web Integrity, llama personalization_integrity() antes de personalization_raw() para que la información del sitio quede capturada en el payload.
Incluir en el formulario de login
Agrega un input oculto para transportar el payload en el envío del formulario.
<form action="/api/login" method="POST">
<input type="text" name="username" placeholder="Username" />
<input type="password" name="password" placeholder="Password" />
<input type="hidden" name="smartid_data" id="smartid-data" />
<button type="submit">Login</button>
</form> Flujo completo de login
El SDK corre en el navegador del usuario. El único que llama a la API de SmartID es tu backend.
SDK recoge datos en el navegador
Al cargar la página de login, llama personalization_raw(). Retorna el payload codificado de forma síncrona y lo escribe en el input oculto.
Formulario envía credenciales + payload a tu backend
Al hacer submit, el formulario envía usuario, contraseña y el campo oculto smartid_data a tu servidor. Si el SDK falló, el campo queda vacío.
Tu backend llama a la API de SmartID
Tu servidor hace un POST al endpoint de login web con los atributos del usuario y el payload cifrado.
/api/v5/analytics/web/login curl -X POST https://<api-url>/api/v5/analytics/web/login \\
-H "Content-Type: application/json" \\
-H "Authorization: Bearer <license>" \\
-d '{
"channelId": 1,
"user": "jlopez",
"session": "445613456fa",
"publicIp": "20.201.64.54",
"data": "<smartid_data from the form, empty string on failure>"
}' | Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
channelId | integer | Requerido | Identificador de tu canal SmartID |
user | string | Requerido | Nombre de usuario o identificador único |
session | string | Opcional | Token de sesión de tu aplicación |
publicIp | string | Requerido | IP pública del usuario |
data | string | Requerido | Payload de getRawData. String vacío si el SDK falló. |
SmartID responde 200 OK
SmartID registra el evento y responde con 200 OK. Procede con tu lógica normal de login.
Logout
Cuando el usuario cierra sesión, notifica a SmartID desde tu backend. No se necesita llamada al SDK desde el navegador.
/api/v5/analytics/web/logout curl -X POST https://<api-url>/api/v5/analytics/web/logout \\
-H "Content-Type: application/json" \\
-H "Authorization: Bearer <license>" \\
-d '{
"channelId": 1,
"user": "jlopez",
"session": "445613456fa"
}' publicIp y data son opcionales en el logout. channelId, user y session son suficientes para cerrar el evento.