tgoop.com/mobileproglib/6080
Create:
Last Update:
Last Update:
Реализация биометрии в мобильных приложениях
Традиционные методы аутентификации уступают биометрии по:
• Удобству (не нужно запоминать пароли)
• Безопасности (уникальные биометрические данные)
• Скорости входа в приложение
1. Добавьте зависимость:
implementation 'androidx.biometric:biometric:1.1.0'
2. Проверка доступности:
val biometricManager = BiometricManager.from(context)
when (biometricManager.canAuthenticate()) {
BiometricManager.BIOMETRIC_SUCCESS -> // Доступно
BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE -> // Нет сканера
BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE -> // Сканер занят
}
3. Запуск аутентификации:
val promptInfo = BiometricPrompt.PromptInfo.Builder()
.setTitle("Вход в приложение")
.setSubtitle("Приложите палец к сканеру")
.setNegativeButtonText("Отмена")
.build()
val biometricPrompt = BiometricPrompt(activity, executor, object : BiometricPrompt.AuthenticationCallback() {
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
// Успешная аутентификация
}
})
biometricPrompt.authenticate(promptInfo)
1. Проверка доступности:
let context = LAContext()
var error: NSError?
if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) {
// Биометрия доступна
}
2. Запрос аутентификации:
context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics,
localizedReason: "Для входа в приложение") { success, error in
DispatchQueue.main.async {
if success {
// Успешная аутентификация
}
}
}
1. Fallback механизмы:
• Предусмотрите резервный PIN-код
• Не храните биометрические данные
2. UX рекомендации:
• Четко объясняйте зачем нужна биометрия
• Предлагайте альтернативные методы входа
3. Обработка ошибок:
• Многочисленные неудачные попытки
• Изменение биометрических данных
Как вы реализуете биометрию? Делитесь кейсами в комментариях
#буст