LoginSignup
12
6

【Flutter】iOSの生体認証の処理が失敗した時に表示される『パスコードを入力する』を消す方法

Posted at

はじめに

業務で生体認証系のパッケージでlocal_authを触る機会があり、セキュリティの観点からiOSの生体認証の処理が失敗したらパスコードを入力できないようにしたかったので実装しました。
ドキュメントに方法が記述されておらず、私が少しハマったため他の人が困らないように、と私のために備忘録として残しておこうと思います。

結論

生体認証の処理を実行時、連続で失敗すると『パスコードを入力する』ボタンが表示されますが、IOSAuthMessagesクラスのlocalizedFallbackTitleプロパティを空文字にすることで『パスコードを入力する』を表示しないようにすることができます。

あくまで2023年10月時点での情報のため、パッケージのアップデートによる破壊的変更や、Flutterのバージョンによって実装方法が変わる可能性がありますので参考程度にしていただけたらと思います🙇‍♂️

執筆時の環境

  • Flutter3.13.2
  • local_auth2.1.7

実装方法

今回作るもの

生体認証GIF.gif

実装方法

『パスコードを入力する』ボタンを消すための記事のため、local_authの詳しい実装についてはここでは触れないです。
詳しく知りたい方はlocal_authのドキュメントをご覧下さい。

結論でも書きましたが、IOSAuthMessagesクラスのlocalizedFallbackTitleプロパティを空文字にすることで『パスコードを入力する』を表示しないようにすることができます。

dart
Future<void> authenticate() async {
      final auth = LocalAuthentication();
      await auth.authenticate(
        //localizedReasonはrequiredになっているので仮で空文字を入れています。
        localizedReason: '',
        authMessages: [
          const IOSAuthMessages(
        // localizedFallbackTitleを空文字にすることでパスコードを入力するを消すことができます。
            localizedFallbackTitle: '',
          ),
        ],
        options: const AuthenticationOptions(
        //生体認証機能を提供するにはbiometricOnlyをtrueにしてください
          biometricOnly: true,
        ),
      );
    }

参考にしたサイト

12
6
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
12
6