На связи Павел Гершевич, Mobile Team Lead агентства продуктовой разработки Amiga. Сегодня рассмотрим плагин local_auth. Он помогает добавить в приложение вход через биометрию — отпечаток пальца или лицо.
Для начала работы нужно указать, что приложение использует эту функциональность, и пользователь может дать разрешение на нее. Для Android в AndroidManifest.xml:
<uses-permission android:name="android.permission.USE_BIOMETRIC"/>
Для iOS в info.plist:
<key>NSFaceIDUsageDescription</key>
<string>Причина использования</string>
Когда пользователь доходит до момента включения биометрии, то нужно проверить доступна ли она. Если всё работает, то можно выбрать, что показать на экране: иконку отпечатка или иконку FaceID. На некоторых Android смартфонах могут быть доступны оба типа.
final LocalAuthentication auth = LocalAuthentication();
final canAuthenticateWithBiometrics = await auth.canCheckBiometrics;
final isDeviceSupported = await auth.isDeviceSupported();
if (canAuthenticateWithBiometrics || isDeviceSupported) {
final availableBiometrics = await auth.getAvailableBiometrics();
if (availableBiometrics.contains(BiometricType.face)) {
... // Показываем иконку с лицом
} else if (availableBiometrics.contains(BiometricType.fingerprint)) {
... // Показываем иконку с отпечатком пальца
}
... // Другие действия для выполнения биометрии
}
Чтобы запросить биометрию, выполним следующий код:
try {
final didAuthenticate = await auth.authenticate(
localizedReason: 'Зачем пользователю ',
options: const AuthenticationOptions(biometricOnly: true),
);
... // Другие действия
} catch (e) {
... // Обработка ошибок
}Но у этого плагина также есть и минусы, о которых мы поговорим на конференции «Стачка» 27-28 сентября в Санкт-Петербурге.
Промокод «спикер_10» подарит вам скидку 10% на билет 🎁
До встречи на конференции!
