Langsung ke konten

Panduan Memulai

GitHub

Anda bisa menggunakan AI-Assisted Setup kami untuk menginstal plugin ini. Tambahkan skill Capgo ke tool AI Anda dengan command berikut:

Jendela terminal
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Lalu gunakan prompt berikut:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-app-attest` plugin in my project.

Jika Anda lebih memilih Manual Setup, instal plugin dengan menjalankan perintah berikut dan ikuti petunjuk khusus platform di bawah ini:

  1. Instal package

    Jendela terminal
    bun add @capgo/capacitor-app-attest
  2. Sinkronkan proyek native

    Jendela terminal
    bunx cap sync
  3. Konfigurasikan persyaratan platform

    • Selesai Setup iOS untuk kapabilitas App Attest dan alur verifikasi backend.
    • Selesai Setup Android untuk Play Integrity Standard dan alur verifikasi backend.
import { AppAttest } from '@capgo/capacitor-app-attest';
const support = await AppAttest.isSupported();
if (!support.isSupported) throw new Error('Attestation unavailable');
const prepared = await AppAttest.prepare();
const attestation = await AppAttest.createAttestation({
keyId: prepared.keyId,
challenge: serverNonce,
});
await sendAttestationToBackend(attestation);
const assertion = await AppAttest.createAssertion({
keyId: storedKeyId,
payload: requestHash,
});
  • Perlu verifikasi backend: jangan hanya percaya attestation blob di perangkat, validasi di server Anda.
  • Nomor proyek Play Integrity: Android Standard API memerlukan nomor proyek Google Cloud dari README.
  • Penyimpanan kunci: gunakan storeKeyId() dan hapus saat logout untuk menghindari kunci usang.

Plugin ini menyediakan satu API lintas platform dengan tetap menjaga keamanan platform native:

  • iOS: Apple App Attest (DeviceCheck)
  • Android: Google Play Integrity Standard API
  • Tanpa skema kriptografi client-side kustom
  • Output ternormalisasi untuk pengecekan backend
import { AppAttest } from '@capgo/capacitor-app-attest';
const support = await AppAttest.isSupported();
if (!support.isSupported) {
throw new Error(`Attestation not supported on ${support.platform}`);
}
const prepared = await AppAttest.prepare();
const registration = await AppAttest.createAttestation({
keyId: prepared.keyId,
challenge: 'backend-one-time-registration-challenge',
});
const assertion = await AppAttest.createAssertion({
keyId: prepared.keyId,
payload: 'backend-one-time-request-payload',
});
console.log(registration.platform, registration.format, registration.token);
console.log(assertion.platform, assertion.format, assertion.token);

createAttestation() dan createAssertion() mengembalikan field kunci yang sama pada iOS dan Android:

KolomTipeDeskripsi
platform'ios' | 'android' | 'web'Platform Native yang menghasilkan token
formatAttestationFormatapple-app-attest atau google-play-integrity-standard
keyIdstringHandle Key/provider yang digunakan untuk attestation
tokenstringToken untuk verifikasi di backend Anda

Attestation hanya berguna jika diverifikasi di sisi server.

  • Jangan pernah percaya hasil sukses hanya dari sisi client.
  • Minta nilai challenge/payload sekali pakai dari backend Anda.
  • Verifikasi token, identitas aplikasi, dan proteksi replay di logika backend.

Gunakan panduan backend khusus platform berikut:

Jika Anda menggunakan Panduan Memulai untuk merencanakan keamanan dan kepatuhan, hubungkan dengan Menggunakan @capgo/capacitor-app-attest untuk kapabilitas native saat menggunakan @capgo/capacitor-app-attest, Enkripsi untuk detail implementasi pada Encryption, Kepatuhan untuk detail implementasi pada Compliance, Capgo Pemindai Keamanan untuk alur kerja produk di Capgo Security Scanner, dan Keamanan Capgo untuk alur kerja produk di Capgo Security.