0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cordova 生体認証について

Last updated at Posted at 2025-09-06

Cordovaでの生体認証について

古い記事が多く、最新のものがないので作成することにしました。
セキュリティの観点から、今後生体認証の実装が増えると思います。

まずはプラグインを入れます。
色々プラグインはありますが、おすすめは以下です。
https://github.com/NiklasMerz/cordova-plugin-fingerprint-aio

このプラグインは優秀で、私が確認した限り各OSで以下の認証で動作確認が取れました。
iOS:FaceID、TouchID
Android:指紋認証、生体認証

入れたいフォルダで以下のコマンドを実行しプラグインをインストールします。

cordova plugin add cordova-plugin-fingerprint-aio --save

プロパティ紹介

主なプロパティは以下です。
ここでは各プロパティで実装時に私がぶつかった壁や落とし穴を紹介します。

生体認証が使用可能か返却

Fingerprint.isAvailable(isAvailableSuccess, isAvailableError, optionalParams);

①requirestrongbiometrics(Android)をtrueに設定すると、「クラス3 (BIOMETRIC_STRONG)」の生体認証が動作するかどうかを返却するので、Androidの顔認証は高確率で使用不可になります。
②機種によっては、正確な情報での返却がされないことがあります。
参考:https://github.com/NiklasMerz/cordova-plugin-fingerprint-aio/issues/451

生体認証ダイアログを表示

Fingerprint.show({
        description: "Some biometric description"
    }, 
    successCallback, errorCallback);

①Androidの機種によっては顔認証そのものが使用できない場合があるようです。
②下二つのプロパティと違い、生体認証の追加登録や削除で生体認証のリセットをすることができません。

補足

秘密が登録できないので、生体認証に成功した際に cordova-plugin-fileなどのプラグインを使用しアプリ内部のストレージに必要な情報を保存する方法をおすすめします。
Crypto-jsを使用してAESなどで暗号化すると尚良いでしょう。
生体認証での失敗時のロックは自然にOS側で行われますが、アプリ側で失敗回数をカウントしておいてロックシステムなどをつくることもできると思います。

生体認証ダイアログを表示し、秘密を登録する

Fingerprint.registerBiometricSecret({
      description: "Some biometric description",
      secret: "my-super-secret",
      invalidateOnEnrollment: true,
      disableBackup: true, // always disabled on Android
    }, successCallback, errorCallback);

①iOSは認証ダイアログが表示されません。
②Androidの生体認証は強度によって決まるので、機種によっては顔認証が動作しません。

生体認証ダイアログを表示し、秘密を取得する

Fingerprint.loadBiometricSecret({
      description: "Some biometric description",
      disableBackup: true, // always disabled on Android
    }, successCallback, errorCallback);

①Androidの生体認証は強度によって決まるので、機種によっては顔認証が動作しません。
②Androidで生体認証に失敗した後に、PINでの認証に成功した場合、secretの取得内容が保存したものではない別のメッセージ「biometric_success」の取得になります。
参考:https://github.com/NiklasMerz/cordova-plugin-fingerprint-aio/issues/378

各プロパティのオプションや詳細などは、https://github.com/NiklasMerz/cordova-plugin-fingerprint-aio を参照してください。

参考URL

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?