スタートガイド
インストール手順と、このプラグインの完全なMarkdownガイドを含むセットアッププロンプトをコピーします。
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-native-biometric`
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/native-biometric/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.
インストール
「インストール」セクションAIアシストによるセットアップでプラグインをインストールできます。以下のコマンドを使用して、お使いのAIツールに Capgo のスキルを追加してください:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins次に、以下のプロンプトを使用します:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-native-biometric` plugin in my project.手動セットアップを希望する場合は、以下のコマンドを実行してプラグインをインストールし、下記のプラットフォーム別の手順に従ってください:
bun add @capgo/capacitor-native-biometricbunx cap syncインポート
「インポート」セクションimport { NativeBiometric } from '@capgo/capacitor-native-biometric';クイックスタート:生体認証でログインを保護
「クイックスタート:生体認証でログインを保護」というセクションimport { NativeBiometric } from '@capgo/capacitor-native-biometric';
async function biometricLogin() { const { isAvailable } = await NativeBiometric.isAvailable(); if (!isAvailable) { return fallbackToPasscode(); }
try { const { username, password } = await NativeBiometric.getSecureCredentials({ server: 'https://api.example.com', }); await signIn(username, password); } catch { return fallbackToPasscode(); }}まず、次を使用してシークレットを保存してください setCredentials と accessControl 読み取り時に生体認証保護が必要な場合。
例:〜でロック解除 verifyIdentity
セクション「例: verifyIdentity でロック解除」getSecureCredentials() 認証情報が生体認証を使う場合は、すでにプロンプトが表示されます accessControl. 入力が不正な場合は、 verifyIdentity() 他の制限付きアクションに使用し、キャンセルやロックアウト時はパスコードフローへ遷移させてください。
try { await NativeBiometric.verifyIdentity({ reason: 'Unlock your account', title: 'Biometric login', });} catch { return fallbackToPasscode();}例: ログアウトで Vault のエントリをクリア
セクション「例: ログアウトで Vault のエントリをクリア」await NativeBiometric.deleteCredentials({ server: 'https://api.example.com' });例: 生体認証の登録変更に反応する
セクション「例: 生体認証の登録変更に反応する」await NativeBiometric.addListener('biometryChange', async () => { const { isAvailable } = await NativeBiometric.isAvailable(); if (!isAvailable) showPasscodeUi();});よくある落とし穴
「よくある落とし穴」セクションgetSecureCredentials事前の設定が必要ですaccessControl: 保存時に生体認証フラグを使用するか、getCredentials追加のプロンプトなしで実行します。- ユーザーのロックアウト: 以下を処理してください
BiometricAuthError.USER_LOCKOUTとBiometricAuthError.USER_TEMPORARY_LOCKOUTとverifyIdentityクールダウン用のUIを表示します。 - シミュレーター: テスト前にシミュレーターで指紋や顔を登録してください。
API の概要
「API 概要」セクションisAvailable
「isAvailable」セクション生体認証ハードウェアが利用可能かどうかを確認します。
import { NativeBiometric } from '@capgo/capacitor-native-biometric';
const result = await NativeBiometric.isAvailable();console.log(result);verifyIdentity
「verifyIdentity」セクションユーザーに生体認証を求めます。
import { NativeBiometric } from '@capgo/capacitor-native-biometric';
await NativeBiometric.verifyIdentity();getCredentials
「getCredentials」セクション指定したサーバーの保存済み認証情報を取得します。
import { NativeBiometric } from '@capgo/capacitor-native-biometric';
const result = await NativeBiometric.getCredentials({ server: 'example.com' });// The result holds sensitive values: use it without logging it.setCredentials
「setCredentials」セクション指定したサーバーの認証情報を保存します。
import { NativeBiometric } from '@capgo/capacitor-native-biometric';
await NativeBiometric.setCredentials({ username: 'username', password: 'password', server: 'example.com',});deleteCredentials
「deleteCredentials」セクション指定したサーバーの保存済み認証情報を削除します。
import { NativeBiometric } from '@capgo/capacitor-native-biometric';
await NativeBiometric.deleteCredentials({ server: 'example.com' });getSecureCredentials
「getSecureCredentials」セクション指定したサーバーの保存済み認証情報を取得します。実行には生体認証が必要です。 認証情報は、accessControlがBIOMETRY_CURRENT_SETまたはBIOMETRY_ANYに設定されて保存されている必要があります。
iOSでは、保護されたKeychainアイテムにアクセスする際、システムが自動的に生体認証のpromptを表示します。 Androidでは、認証情報の復号キーに紐付けられたCryptoObjectと共にBiometricPromptが表示されます。
import { NativeBiometric } from '@capgo/capacitor-native-biometric';
const result = await NativeBiometric.getSecureCredentials({ server: 'example.com' });// The result holds sensitive values: use it without logging it.isCredentialsSaved
「isCredentialsSaved」セクション指定したサーバーの認証情報が既に保存されているか確認します。
import { NativeBiometric } from '@capgo/capacitor-native-biometric';
const result = await NativeBiometric.isCredentialsSaved({ server: 'example.com' });console.log(result);型リファレンス
「型リファレンス」セクションIsAvailableOptions
「IsAvailableOptions」セクションexport interface IsAvailableOptions { /** * Only for iOS. * Specifies if should fallback to passcode authentication if biometric authentication is not available. * On Android, this parameter is ignored due to BiometricPrompt API constraints: * DEVICE_CREDENTIAL authenticator and negative button (cancel) are mutually exclusive. */ useFallback: boolean;}AvailableResult
「AvailableResult」セクション生体認証が利用可能かどうかを示す isAvailable() メソッドの戻り値。
export interface AvailableResult { /** * Whether authentication is available (biometric or fallback if useFallback is true) */ isAvailable: boolean; /** * The strength of available authentication method (STRONG, WEAK, or NONE) */ authenticationStrength: AuthenticationStrength; /** * The primary biometry type available on the device. * On Android devices with multiple biometry types, this returns MULTIPLE. * Use this for display purposes only - always use isAvailable for logic decisions. */ biometryType: BiometryType; /** * Whether the device has a secure lock screen (PIN, pattern, or password). * This is independent of biometric enrollment. */ deviceIsSecure: boolean; /** * Whether strong biometry (Face ID, Touch ID, or fingerprint on devices that consider it strong) * is specifically available, separate from weak biometry or device credentials. */ strongBiometryIsAvailable: boolean; /** * Error code from BiometricAuthError enum. Only present when isAvailable is false. * Indicates why biometric authentication is not available. * @see BiometricAuthError */ errorCode?: BiometricAuthError;}BiometryChangeListener
「BiometryChangeListener」セクション生体認証変更リスナーのコールバック型。
export type BiometryChangeListener = (result: AvailableResult) => void;BiometricOptions
「BiometricOptions」セクションexport interface BiometricOptions { reason?: string; title?: string; subtitle?: string; description?: string; negativeButtonText?: string; /** * Only for iOS. * Specifies if should fallback to passcode authentication if biometric authentication fails. * On Android, this parameter is ignored due to BiometricPrompt API constraints: * DEVICE_CREDENTIAL authenticator and negative button (cancel) are mutually exclusive. */ useFallback?: boolean; /** * Only for iOS. * Set the text for the fallback button in the authentication dialog. * If this property is not specified, the default text is set by the system. */ fallbackTitle?: string; /** * Only for Android. * Set a maximum number of attempts for biometric authentication. The maximum allowed by android is 5. * @default 1 */ maxAttempts?: number; /** * Only for Android. * Specify which biometry types are allowed for authentication. * If not specified, all available types will be allowed. * @example [BiometryType.FINGERPRINT, BiometryType.FACE_AUTHENTICATION] */ allowedBiometryTypes?: BiometryType[];}GetCredentialOptions
「GetCredentialOptions」セクションexport interface GetCredentialOptions { server: string;}Credentials
「Credentials」セクションexport interface Credentials { username: string; password: string;}SetCredentialOptions
「SetCredentialOptions」セクションexport interface SetCredentialOptions { username: string; password: string; server: string; /** * Access control level for the stored credentials. * When set to BIOMETRY_CURRENT_SET or BIOMETRY_ANY, the credentials are * hardware-protected and require biometric authentication to access. * * On iOS, this adds SecAccessControl to the Keychain item. * On Android, this creates a biometric-protected Keystore key and requires * BiometricPrompt authentication for both storing and retrieving credentials. * * @default AccessControl.NONE * @since 8.4.0 */ accessControl?: AccessControl;}DeleteCredentialOptions
「DeleteCredentialOptions」セクションexport interface DeleteCredentialOptions { server: string;}GetSecureCredentialsOptions
「GetSecureCredentialsOptions」セクションexport interface GetSecureCredentialsOptions { server: string; /** * Reason for requesting biometric authentication. * Displayed in the biometric prompt on both iOS and Android. */ reason?: string; /** * Title for the biometric prompt. * Only for Android. */ title?: string; /** * Subtitle for the biometric prompt. * Only for Android. */ subtitle?: string; /** * Description for the biometric prompt. * Only for Android. */ description?: string; /** * Text for the negative/cancel button. * Only for Android. */ negativeButtonText?: string;}IsCredentialsSavedOptions
「IsCredentialsSavedOptions」セクションexport interface IsCredentialsSavedOptions { server: string;}IsCredentialsSavedResult
「IsCredentialsSavedResult」セクションexport interface IsCredentialsSavedResult { isSaved: boolean;}AuthenticationStrength
「AuthenticationStrength」セクションexport enum AuthenticationStrength { /** * No authentication available, even if PIN is available but useFallback = false */ NONE = 0, /** * Strong authentication: Face ID on iOS, fingerprints on devices that consider fingerprints strong (Android). * Note: PIN/pattern/password is NEVER considered STRONG, even when useFallback = true. */ STRONG = 1, /** * Weak authentication: Face authentication on Android devices that consider face weak, * or PIN/pattern/password if useFallback = true (PIN is always WEAK, never STRONG). */ WEAK = 2,}Source of Truth
「Source Of Truth」セクションこのページはプラグインの src/definitions.tsから生成されています。upstream で公開 API が変更されたら、再度 sync を実行してください。
Getting Startedの続きを進める
「Getting Started からの続き」セクション使用している場合 スタートガイド 認証とアカウントフローを計画するには、これを次と連携させてください @capgo/capacitor-native-biometric を使用する場合 @capgo/capacitor-native-biometric を使用してネイティブ機能を利用する場合: @capgo/capacitor-social-login @capgo/capacitor-social-login の実装の詳細については、 @capgo/capacitor-passkey @capgo/capacitor-passkey の実装詳細については、 @capgo/capacitor-native-biometric @capgo/capacitor-native-biometric の実装の詳細、および 2要素認証 二要素認証の実装の詳細については。