Erste Schritte
Kopiere einen Setup-Prompt mit den Installationsschritten und dem vollständigen Markdown-Guide für dieses Plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-device-integrity`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/device-integrity/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Installation
Abschnitt mit dem Titel „Installation“Du kannst unser KI-gestütztes Setup nutzen, um das Plugin zu installieren. Füge die Capgo Skills mit dem folgenden Befehl deinem KI-Tool hinzu:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsNutze dann diesen Prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-device-integrity` plugin in my project.Wenn du ein manuelles Setup bevorzugst, installiere das Plugin mit den folgenden Befehlen und befolge die plattformspezifischen Anweisungen unten:
-
Paket installieren
Terminalfenster bun add @capgo/capacitor-device-integrity -
Native Projekte synchronisieren
Terminalfenster bunx cap sync -
Plattform-Anforderungen konfigurieren
- Android: festlegen
plugins.DeviceIntegrity.cloudProjectNumberfür Play Integrity bei der Nutzung von Attestation-APIs. - iOS: App Attest Capability in Xcode für Attestation-APIs aktivieren.
- Android: festlegen
Quickstart
Abschnitt „Quick start“import { DeviceIntegrity } from '@capgo/capacitor-device-integrity';
const result = await DeviceIntegrity.getCapabilities();console.log(result);Beispiel: getWidevineFingerprint
Abschnitt mit dem Titel „Beispiel: getWidevineFingerprint“import { DeviceIntegrity } from '@capgo/capacitor-device-integrity';
const capabilities = await DeviceIntegrity.getCapabilities();if (capabilities.widevine.fingerprintAvailable) { const result = await DeviceIntegrity.getWidevineFingerprint(); console.log(result);}Beispiel: prepareAttestation
Abschnitt mit dem Titel „Beispiel: prepareAttestation“import { DeviceIntegrity } from '@capgo/capacitor-device-integrity';
const capabilities = await DeviceIntegrity.getCapabilities();const attestationSupported = capabilities.appAttest.supported || capabilities.playIntegrity.supported;
if (attestationSupported) { const result = await DeviceIntegrity.prepareAttestation(); console.log(result);}Häufige Stolperfallen
Abschnitt „Häufige Fallstricke“- Nativer Sync: ausführen
npx cap syncnach Plugin-Upgrades. - Single Source of Truth: Vertrauen
src/definitions.tsim GitHub Repo.
Warum dieses Plugin nutzen?
Abschnitt mit dem Titel „Warum dieses Plugin nutzen?“Nutze ein API, um Integrity-Signale bei der Registrierung, beim Login oder bei risikoreichen Aktionen zu sammeln:
- Probe-Support prüfen, bevor native APIs aufgerufen werden (
getCapabilities) - Android-Geräte mit Widevine fingerprinten (
getWidevineFingerprint) - Mit App Attest oder Play Integrity registrieren und validieren (
prepareAttestation,createAttestation,createAssertion) - iOS DeviceCheck-Token anfordern (
getDeviceCheckToken)
Client-Werte sind erst vertrauenswürdig, wenn dein Backend die Token verifiziert und Replay-Protection erzwingt.
Nutzung
Abschnitt „Usage“import { DeviceIntegrity } from '@capgo/capacitor-device-integrity';
const capabilities = await DeviceIntegrity.getCapabilities();console.log(capabilities.platform, capabilities.playIntegrity.supported);
if (capabilities.widevine.fingerprintAvailable) { const widevine = await DeviceIntegrity.getWidevineFingerprint(); console.log(widevine.fingerprint, widevine.securityLevel);}
const attestationSupported = capabilities.appAttest.supported || capabilities.playIntegrity.supported;
if (attestationSupported) { try { const prepared = await DeviceIntegrity.prepareAttestation();
const challengeResponse = await fetch( 'https://api.example.com/integrity/registration-challenge', ); if (!challengeResponse.ok) { throw new Error(`Challenge request failed with ${challengeResponse.status}`); } const challengeBody = await challengeResponse.json(); if (typeof challengeBody.challenge !== 'string' || challengeBody.challenge.length === 0) { throw new Error('Backend response missing challenge'); } const challenge = challengeBody.challenge;
const registration = await DeviceIntegrity.createAttestation({ keyId: prepared.keyId, challenge, });
const payloadResponse = await fetch( 'https://api.example.com/integrity/assertion-payload', ); if (!payloadResponse.ok) { throw new Error(`Payload request failed with ${payloadResponse.status}`); } const payloadBody = await payloadResponse.json(); if (typeof payloadBody.payload !== 'string' || payloadBody.payload.length === 0) { throw new Error('Backend response missing payload'); } const payload = payloadBody.payload;
const assertion = await DeviceIntegrity.createAssertion({ keyId: prepared.keyId, payload, });
console.log(registration.format, registration.token); console.log(assertion.format, assertion.token); } catch (error) { console.error('Attestation flow failed', error); }}
if (capabilities.deviceCheck.supported) { const deviceCheck = await DeviceIntegrity.getDeviceCheckToken(); console.log(deviceCheck.token);}Widevine-Optionen
Abschnitt „Widevine-Optionen“getWidevineFingerprint() akzeptiert optionale Felder:
| Feld | Typ | Beschreibung |
|---|---|---|
includeRawId | boolean | Wenn true, wird die Widevine-Device-ID als Base64-Raw-String inkludiert (sensibel). |
hashSalt | string | Salt für fingerprint. Android verwendet den App-Package-Namen, wenn dieser weggelassen wird. |
Backend-Anforderung
Abschnitt: „Backend-Anforderungen“- Verifiziere App Attest- und Play Integrity-Token auf deinem Server.
- Behandle Widevine-IDs als sensible Daten und deklariere deren Nutzung in deiner Datenschutzerklärung.
- Nutze Widevine-Werte nicht für Werbung oder Cross-App-Tracking.
Weiter geht's nach Getting Started
Abschnitt: „Weiter geht’s mit Getting Started“Wenn du es nutzt Erste Schritte um Sicherheit und Compliance zu planen, verbinden Sie es mit Verwendung von @capgo/capacitor-device-integrity für die native Funktion in Verwendung von @capgo/capacitor-device-integrity, @capgo/capacitor-app-attest für gezielte App Attest- und Play Integrity-Flows, Verschlüsselung für die Implementierungsdetails in Encryption, Compliance für die Implementierungsdetails in Compliance, und Capgo Sicherheit für den Produkt-Workflow in Capgo Security.