Installation
Step 1 — Configure Content Security Policy (CSP)
The Web SDK uses Web Workers for security and performance. Add the following configuration to your CSP:
<meta
http-equiv="Content-Security-Policy"
content="
script-src 'self' 'unsafe-eval' *.googleapis.com *.acesso.io *.unico.run *.unico.io *.unico.app *.sentry.io;
worker-src 'self' blob:;
child-src 'self' blob:;
style-src 'self' 'unsafe-inline' *.googleapis.com *.acesso.io *.unico.run *.unico.io *.unico.app;
font-src 'self' https://fonts.gstatic.com *.acesso.io *.unico.run *.unico.io *.unico.app;
img-src 'self' data: blob: *.acesso.io *.unico.run *.unico.io *.unico.app;
media-src 'self' data: *.acesso.io *.unico.run *.unico.io *.unico.app;
script-src-elem 'self' 'unsafe-inline' blob: *.googleapis.com *.acesso.io *.unico.run *.unico.io *.unico.app;
connect-src *.googleapis.com *.acesso.io *.unico.run *.unico.io *.unico.app *.sentry.io"
/>
If your application has a CSP, this configuration is mandatory to ensure correct functioning of the SDK.
'unsafe-eval'(script-src) — required by the liveness detection engine to compile WebAssembly and dynamically evaluate its security routines at runtime.'unsafe-inline'(style-src, script-src-elem) — required by the SDK's inline styles and inline script bootstrapping. Removing it breaks the capture UI.*.acesso.io— legacy Unico infrastructure domain, still load-bearing for assets and API calls.*.unico.run/*.unico.io/*.unico.app— current Unico service domains (CDN, API, and app subdomains).*.googleapis.com(script-src, style-src, script-src-elem, connect-src) — required to load the Google Fonts stylesheet (@font-faceCSS viafonts.googleapis.com) and other Google API resources used by the capture UI.fonts.gstatic.com(font-src) — serves the Google Fonts binary font files referenced by the stylesheet loaded fromfonts.googleapis.com.*.sentry.io— Unico uses Sentry for SDK error tracking. Required inscript-srcandconnect-srcto allow the error reporting calls.blob:(worker-src, child-src, script-src-elem) — required because Web Workers and certain SDK sub-resources are created as Blob URLs at runtime.
Step 2 — Install the package
The Web SDK is provided through an npm package or CDN.
- npm
- yarn
- CDN
npm install unico-webframe
yarn add unico-webframe
Download the SDK and import it into your project:
Step 3 — Import the SDK
After installing, import the SDK into your project.
- From npm
- From CDN
import {
UnicoCheckBuilder,
SelfieCameraTypes,
UnicoThemeBuilder,
DocumentCameraTypes,
UnicoConfig,
LocaleTypes
} from 'unico-webframe'
import {
UnicoCheckBuilder,
SelfieCameraTypes,
UnicoThemeBuilder,
DocumentCameraTypes,
UnicoConfig,
LocaleTypes
} from 'UnicoCheckBuilder.min.js'
Step 4 — Download additional resource files
Additional resource files are required to perform Liveness capture. Download the file matching your SDK version and include it in your project:
The resource files are version-locked to the SDK. Every time you bump unico-webframe, you must re-download the matching resources from the table below — using mismatched versions causes a runtime error during liveness capture.
Alternatively, since SDK 3.18.0 the SDK can auto-fetch these files at initialization time, eliminating the manual download step. See Initialization for the setResourceDirectory option.
| SDK version | FaceTec resources |
|---|---|
| 3.23.7 | 9.7.114 |
| 3.23.3 → 3.23.6 | 9.7.107 |
| 3.23.0 → 3.23.1 | 9.7.102 |
| 3.22.6 → 3.22.7 | 9.7.100 |
| 3.22.5 | 9.7.99 |
| 3.22.3 → 3.22.4 | 9.7.98 |
| 3.22.2 | 9.7.96 |
| 3.22.1 | 9.7.93 |
| 3.22.0 | 9.7.90 |
| 3.21.3 → 3.21.4 | 9.7.85 |
| 3.21.2 | 9.7.82 |
| 3.21.1 | 9.7.80 |
| 3.20.10 → 3.21.0 | 9.7.76 |
| 3.20.9 | 9.7.75 |
| 3.20.8 | 9.7.73 |
| 3.20.7 | 9.7.68 |
| 3.20.5 → 3.20.6 | 9.7.65 |
| 3.20.3 → 3.20.4 | 9.7.64 |
| 3.20.2 | 9.7.63 |
| 3.20.1 | 9.7.61 |
| 3.20.0 | 9.7.55 |
| 3.19.0 → 3.19.3 | 9.7.45 → 9.7.51 |
| 3.18.x | 9.6.92 → 9.7.41 (see legacy table) |
Also download the AI files for the SDK: models.zip.
All additional files must be hosted in a public location, visible to the Web within your project.