Lompat ke konten utama
@capgo/capacitor-passkey Keamanan & Autentikasi Sumber Terbuka

Passkey Plugin Capacitor

Tetapkan autentikasi WebAuthn gaya browser code di Capacitor sambil panggilan kunci native dan patching host diatur untuk Anda

Install

bun add @capgo/capacitor-passkey bunx cap sync
npm, pnpm atau yarn
  • npm install @capgo/capacitor-passkey
  • pnpm add @capgo/capacitor-passkey
  • yarn add @capgo/capacitor-passkey

Panduan

Cara Menggunakan Passkey di Capacitor

Uji di perangkat

Unduh aplikasi Capgo, kemudian scan kode QR code.

Tautan QR pratinjau plugin Passkey code

Menggunakan @capgo/capacitor-passkey

Tetapkan browser-style WebAuthn code di aplikasi Capacitor sambil plugin mengelola panggilan passkey native dan patching host native.

Browser-style API

@capgo/capacitor-passkey Menggunakan aliran WebAuthn yang sama seperti yang Anda gunakan di web.

await navigator.credentials.create({ publicKey: registrationOptions });
await navigator.credentials.get({ publicKey: requestOptions });

Pada bangun native, plugin menginstal shim untuk navigator.credentials.create() dan navigator.credentials.get(), mengirimkan permintaan ke API passkey iOS dan Android, dan mengembalikan objek kreditur seperti browser ke aplikasi Anda.

Pasang dan sinkronkan proyek native

bun add @capgo/capacitor-passkey
bunx cap sync

Konfigurasi aplikasi host sekali saja

Tambahkan konfigurasi plugin di capacitor.config.ts atau capacitor.config.json:

import type { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'app.capgo.passkey.example',
  appName: 'My App',
  webDir: 'dist',
  plugins: {
    CapacitorPasskey: {
      origin: 'https://signin.example.com',
      autoShim: true,
      domains: ['signin.example.com'],
    },
  },
};

export default config;

Apa yang dilakukan konfigurasi plugin

Konfigurasi dibaca dari plugins.CapacitorPasskey di capacitor.config.*.

  • origin: asal HTTPS utama yang dipakai oleh shim dan API
  • domains: nama host tambahan yang dipakai untuk memperbaiki konfigurasi native selama sinkronisasi
  • autoShim: default ke true dan mengontrol native cap sync hook konfigurasi otomatis

Jalankan sinkronisasi lagi setelah mengubah konfigurasi:

bunx cap sync

Instal shim selama proses bootstrapping

Import plugin dari entri pintu standar, kemudian instal shim selama proses bootstrapping aplikasi:

import { CapacitorPasskey } from '@capgo/capacitor-passkey';

await CapacitorPasskey.autoShimWebAuthn();

After that, your existing browser-style passkey code can stay the same.

Jika Anda perlu memaksa shim atau mengganti asal yang dikonfigurasi pada waktu runtime, panggil:

import { CapacitorPasskey } from '@capgo/capacitor-passkey';

CapacitorPasskey.shimWebAuthn({
  origin: 'https://signin.example.com',
});

Tetapkan aliran WebAuthn normal Anda

const credential = await navigator.credentials.create({
  publicKey: registrationOptions,
});

const assertion = await navigator.credentials.get({
  publicKey: requestOptions,
});

Apa saja patch sinkronisasi yang Anda butuhkan

Pada saat bunx cap sync, plugin ini memperbarui proyek host native yang dihasilkan:

  • iOS: hak akses domain terkait dan pengaturan Xcode ketika diperlukan
  • Android: asset_statements metadata dan sumber daya yang dihasilkan oleh manifest

Konfigurasi native masih memerlukan file kepercayaan situs

Plugin ini mengurangi pekerjaan di sisi aplikasi, tetapi passkeys masih bergantung pada file kepercayaan situs untuk domain pihak yang dipercaya Anda. Anda masih perlu menyimpan:

  • https://your-domain/.well-known/apple-app-site-association
  • https://your-domain/.well-known/assetlinks.json

Plugin ini dapat memperbaiki proyek native yang dihasilkan selama sinkronisasi, tetapi tidak dapat membuat atau menyimpan file-file kepercayaan situs tersebut untuk Anda.

Metode publik lainnya

Plugin publik API juga mengungkapkan bantuan langsung yang ditentukan dalam src/definitions.ts:

  • await CapacitorPasskey.getConfiguration() kembali ke nilai yang telah terpecahkan origin, domains, autoShim, dan saat ini platform.
  • await CapacitorPasskey.createCredential(...) mendaftarkan passkey dari payload WebAuthn yang aman JSON.
  • await CapacitorPasskey.getCredential(...) otentikasi dengan passkey yang sudah ada dari payload WebAuthn yang aman JSON.
  • await CapacitorPasskey.isSupported() melaporkan apakah runtime saat ini mendukung passkeys.
  • await CapacitorPasskey.getPluginVersion() kembali ke versi marker implementasi native saat ini.

Petunjuk platform

Peringatan penting iOS

Pada iOS 17.4 dan yang lebih baru, plugin menggunakan klien data browser-style API sehingga asal HTTPS yang dikonfigurasi tercermin dalam clientDataJSON.

Peringatan penting Android

Pengelola Kredensial Android dapat berbagi pihak yang dipercaya dan passkeys situs web Anda ketika Digital Asset Links dikonfigurasi, tetapi asal asertasi native tidak identik dengan asal browser. Jika backend Anda secara ketat memvalidasi clientDataJSON.origin, pastikan Anda menerima asal aplikasi Android di samping asal situs web Anda.

Referensi Lengkap

Teruskan dari Penggunaan @capgo/capacitor-passkey

Jika Anda menggunakan Penggunaan @capgo/capacitor-passkey untuk merencanakan autentikasi dan alur akun, hubungkannya dengan @capgo/capacitor-passkey untuk detail implementasi di @capgo/capacitor-passkey, Mulai Menggunakan untuk detail implementasi di Berikut, @capgo/capacitor-login Sosial untuk detail implementasi di @capgo/capacitor-social-login, @capgo/capacitor-native-biometric untuk detail implementasi di @capgo/capacitor-native-biometric, dan Dua faktor autentikasi untuk detail implementasi di Dua Faktor Autentikasi.

FAQ

FAQ Plugin Passkey

Bagaimana cara saya menginstal plugin Passkey di sebuah aplikasi Capacitor?

Jalankan "bun add @capgo/capacitor-passkey" (atau "npm install @capgo/capacitor-passkey"), kemudian jalankan "bunx cap sync" agar proyek iOS dan Android dapat menangkap native code. Import dari "@capgo/capacitor-passkey" di aplikasi code Anda.

Apakah @capgo/capacitor-passkey berfungsi dengan React, Vue dan Angular?

Ya. Passkey adalah paket Capacitor, sehingga berfungsi dengan semua framework web yang berjalan di dalam Capacitor, termasuk Ionic, React, Vue, Angular, Svelte dan JavaScript biasa.

Versi Capacitor apa yang didukung oleh @capgo/capacitor-passkey?

Capgo plugin mengikuti versi utama Capacitor: gunakan versi plugin utama yang sesuai dengan versi utama Capacitor Anda (misalnya plugin v8 dengan Capacitor 8). Tabel kompatibilitas di README GitHub menyebutkan versi yang dipertahankan.

Apakah @capgo/capacitor-passkey gratis dan terbuka sumber?

Ya. Sumber code adalah publik di GitHub di https://github.com/Cap-go/capacitor-passkey/ dan paketnya gratis untuk diinstal dari npm. Laporan bug dan permintaan pull diterima.

Dapatkah saya memperbarui code yang menggunakan Passkey tanpa review App Store?

Menginstal atau mengupgrade plugin mengubah native code, sehingga memerlukan build toko baru. Setelah itu, perubahan JavaScript, HTML dan CSS yang memanggil plugin dapat berlayar segera dengan Capgo live updates.

Kirim perubahan Passkey tanpa harus menunggu tinjauan aplikasi

Setelah plugin ini ada di toko Anda, Capgo pembaruan hidup akan mendorong perubahan JavaScript, HTML, dan CSS Anda ke pengguna dalam menit.

Mulai dengan Capgo