SDK de dispositivo
El SDK de navegador identifica el dispositivo del jugador para detectar multicuentas y abuso de bonos: varias cuentas desde el mismo equipo.
Cómo funciona
- En tu página, el SDK calcula un identificador del navegador con FingerprintJS (versión de código abierto, licencia MIT). Solo salen del navegador ese identificador, su nivel de confianza y tres indicadores de automatización; las características crudas del navegador no.
- Lo registra con
POST /v1/deviceusando una llave publicable (pk_…) y recibe undevice_id(dv_…). - Tu página manda el
device_ida tu backend, y tu backend lo incluye enPOST /v1/scorecon tu llave secreta. El enlace dispositivo ↔ cuenta ocurre ahí.
import { identify } from "@sentinel-mx/device";
const { deviceId } = await identify({
publishableKey: "pk_live_…",
endpoint: "https://…", // la URL base de la API
});
// envía deviceId a tu backend junto con el registro, depósito, etc.
Llaves publicables
Una llave publicable está pensada para estar en tu página, así que es pública. Por eso:
- solo sirve para
POST /v1/device; - solo funciona desde los orígenes registrados para ella (coincidencia exacta del encabezado
Origin, p. ej.https://www.tucasino.mx); - cada origen es
https://host[:puerto], tal como lo envía el navegador: en minúsculas, sin ruta ni/final, sin el puerto 443 y con dominios internacionales en punycode (https://xn--…).nully*no se aceptan;http://solo paralocalhost,127.0.0.1o[::1]en desarrollo; - créala con
POST /v1/keys{"name": "web", "kind": "publishable", "allowed_origins": ["https://www.tucasino.mx"]}.
Lo que verás en /v1/score
signals.device.facts incluye si el dispositivo es conocido y cuántas cuentas distintas lo usaron (accounts_30d). Razones relacionadas: DEVICE_NEW, DEVICE_EMULATOR y DEVICE_MULTI_ACCOUNT (esta última es una regla del paquete iGaming; el número de cuentas se ajusta).
Privacidad
La identificación del dispositivo debe mencionarse en tu aviso de privacidad. Safegate guarda el identificador solo como hash con llave (HMAC), separado por cuenta y entorno.