Apps Móviles

Recoge el payload cifrado del dispositivo con el SDK nativo y reenvíalo a tu backend para que lo registre en SmartID.

Instalación del SDK

Antes de integrar, instala el SDK en Getting Started → Instalar el SDK →

GetRawData

Recoge la huella del dispositivo de forma asíncrona y la devuelve codificada. Llama este método justo antes de que el usuario envíe el formulario de login.

Kotlin
SmartId
    .getInstance()
    .GetRawData(getApplicationContext(), "https://your-backend.com")
    .onSuccess { time, response ->
        // response: encoded device payload
        // forward to your backend alongside user credentials
    }
    .onFailure { time, message, errorCode ->
        // still submit the login — send data as empty string
    }
    .start()
Swift
SID.shared.startLocation()

SID.shared
    .getRawData("https://your-backend.com")
    .onSuccess(success: { time, encodedData in
        // encodedData: encoded device payload
        // forward to your backend alongside user credentials
    })
    .onFailure(failure: { time, message, errorCode in
        // still submit the login — send data as empty string
    })
    .start()
Dart
// Just before form submission
SmartID.getRawData(
    applicationBackendDomain: 'https://your-backend.com',
)
.onSuccess((time, response) {
    // response: encoded device payload
    // forward to your backend alongside user credentials
})
.onFailure((time, message, errorCode) {
    // still submit the login — send data as empty string
})
.start()
TypeScript
import { SmartID } from 'capacitor-smartid';

// iOS only — initialize GPS sensor
await SmartID.startLocation();

try {
    const result = await SmartID.getRawData({
        backendDomain: 'https://your-backend.com'
    });
    // result.data: encoded device payload
    // forward to your backend alongside user credentials
} catch (error) {
    // still submit the login — send data as empty string
}

Parámetros del método

Parámetro Plataforma Tipo Descripción
context Android Context Contexto de la aplicación. Requerido.
applicationBackendDomain (backendDomain en Capacitor) Todas String URL de tu backend. Opcional. Usado para SSL pinning y detección de pharming.

Parámetros del callback

Parámetro Callback Tipo Descripción
time Éxito / Falla Long Duración de la ejecución en milisegundos
response Éxito String Payload cifrado del dispositivo. Envíalo tal cual al campo data de la API.
message Falla String Descripción del error
errorCode Falla Int Código del error
Importante — callback de falla

Si el SDK devuelve un callback de Failure, aún debes enviar la solicitud de login a tu backend, pero con un campo data vacío.

Flujo completo de login

El SDK corre en el cliente. El único que llama a la API de SmartID es tu backend.

1

App llama GetRawData

Android/iOS/Flutter: en el callback onSuccess, el parámetro response contiene el payload cifrado. Capacitor: el resultado está en result.data del bloque try. Guárdalo hasta que el usuario envíe el formulario.

2

App envía credenciales + payload a tu backend

Incluye el valor de response junto al usuario y contraseña en tu request a tu propio servidor. Si el SDK falló, usa un string vacío.

3

Tu backend llama a la API de SmartID

Tu servidor hace un POST al endpoint de login con los atributos del usuario y el payload cifrado.

POST /api/v5/analytics/app/login
cURL
curl -X POST https://<api-url>/api/v5/analytics/app/login \\
  -H "Content-Type: application/json" \\
  -H "Authorization: Bearer <license>" \\
  -d '{
    "channelId": 2,
    "user": "jlopez",
    "session": "445613456fa",
    "publicIp": "20.201.64.54",
    "data": "<response from GetRawData, empty string on failure>"
  }'
Campo Tipo Requerido Descripción
channelIdintegerRequeridoIdentificador de tu canal SmartID
userstringRequeridoNombre de usuario o identificador único
sessionstringOpcionalToken de sesión de tu aplicación
publicIpstringRequeridoIP pública del usuario
datastringRequeridoPayload cifrado de GetRawData. String vacío si el SDK falló.
4

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 cliente.

POST /api/v5/analytics/app/logout
cURL
curl -X POST https://<api-url>/api/v5/analytics/app/logout \\
  -H "Content-Type: application/json" \\
  -H "Authorization: Bearer <license>" \\
  -d '{
    "channelId": 2,
    "user": "jlopez",
    "session": "445613456fa"
  }'
Campos opcionales en logout

publicIp y data son opcionales en el logout. channelId, user y session son suficientes para cerrar el evento.