Как правильно настроить local_auth во флаттере, если вы хотите защитить все приложение этим (например, банковские приложения)? - PullRequest
1 голос
/ 09 марта 2020

У нас проблема в том, что мы хотим защитить приложение с помощью отпечатка пальца / TouchID / FaceID. Я упомяну здесь только отпечаток пальца, что всегда означает все функции biometri c local_auth. Частично это работает довольно хорошо с функцией "didChangeAppLifecycleState", но только частично.

Поскольку при iOS приложение становится неактивным во время запроса отпечатка пальца, запрос поступает непрерывно l oop когда запрашивается "AppLifecycleState.resumed". Поэтому мы устанавливаем временную метку в «AppLifecycleState.pause» и запрашиваем отпечаток при возобновлении только в том случае, если с момента приостановки приложения прошло x секунд. Теперь мы также установили немного большее время, чтобы блокировка не включалась go сразу, если вам нужно переключиться на камеру из приложения. Конечно, есть и другие проверки, но сейчас это основная идея c.

  1. Вот проблема, которая заключается в том, что флаттер требует некоторого времени для выполнения паузы. Оба iOS и Android. Так что, если вы теперь быстро свернете приложение и снова откроете его (потому что свертывание могло быть случайностью?), Отпечаток пальца будет получен напрямую. Ничего серьезного, но неприятного.

  2. Наша настоящая проблема, которую я не могу понять, поскольку я тоже не знаю, как ее отладить. Если приложение не использовалось в течение длительного времени, особенно в понедельник после выходных, у коллег по работе возникает проблема, заключающаяся в том, что они могут просто запустить приложение без отпечатка пальца. Пока замечено только под iOS, поскольку коллеги используют все iOS, но не исключает, что это может произойти и под Android.

Я просто не знаю, как это исправить. У кого-нибудь был опыт с этим? Или есть ли очень простой способ использовать отпечаток пальца во флаттере , чтобы вы могли открывать приложение только с отпечатком пальца , возможно, в совершенно другом месте, чем "didChangeAppLifecycleState" ?

С уважением, Якоб

...