Здравствуйте, уважаемые разработчики.
Близится к своему завершению 2024 год, и, не смотря на то, что пришло время подводить итоги и готовиться к праздникам, мы ни на секунду не прекращаем развитие и усовершенствование библиотеки FGX Native. Финальным в этом году станет релиз под номером 1.18.8.0, который будет содержать не только исправления ошибок, но и привнесёт ряд новых приятных возможностей. Одной из таких возможностей станет новый сервис биометрической аутентификации.
Что такое биометрическая аутентификация
В последние годы биометрическая аутентификация на смартфонах стала неотъемлемой частью повседневной жизни. Эта технология позволяет пользователям разблокировать устройства и авторизоваться в приложениях, используя уникальные физические характеристики, такие как отпечаток пальца, лицо или даже радужная оболочка глаза. Биометрическая идентификация заменяет или дополняет традиционные пароли и PIN-коды, делая процесс аутентификации быстрее и удобнее.
Преимущества биометрической аутентификации
- Удобство: Биометрические методы позволяют разблокировать телефон или войти в приложение быстрее, чем вводить пароль.
- Повышенная безопасность: Физические характеристики сложно подделать или украсть, что делает биометрию надежнее традиционных паролей.
- Персонализированный доступ: Биометрическая аутентификация позволяет настроить телефон так, чтобы только владелец мог получить к нему доступ.
Пример работы биометрической аутентификации в приложении
Для того, чтобы в своих приложениях вы смогли предложить пользователям этот современный и безопасный вариант аутентификации, мы разработали новый сервис биометрической аутентификации.
Компонент TfgBiometricAuthentication
TfgBiometricAuthentication это невизуальный компонент, который позволяет запускать процесс биометрической аутентификации, а так же получать информацию о её текущем состоянии и типе.
Настройки
Title - основной текст, объясняющий для чего именно осуществляется запрос аутентификации. Старайтесь не указывать имя приложения, потому что, как правило, оно будет отображено самой ОС.
Fallback.Kind - Тип резервного действия на случай, если биометрическая аутентификация завершается неудачей. Возможны следующие варианты:
- Passcode - Использовать ключ (пароль, PIN-код, графический ключ).
- Action - Пользовательское действие.
- None - Не использовать резервное действие.
Fallback.Action - Этот текст будет отображен на кнопке, если в качестве резервного действия выбрано пользовательское действие.
Subtitle - Подзаголовок. Актуально только для Android.
Description - Описание. Актуально только для Android.
Методы
Authenticate - Запуск асинхронного процесса биометрической аутентификации с учётом выбранных настроек. Функция возвращает булево значение в зависимости от успешности запуска процесса аутентификации. Чтобы узнать причину неудачного запуска вы можете проанализировать состояние AInfo.State в перегруженной версии метода. Результат процесса аутентификации будет передан в одном из событий компонента.
GetBiometricInformation - Получение информации о состоянии и типе биометрической аутентификации. При запросе передается флаг AAllowUsePasscode, который будет учитывать
планируете ли вы разрешать использовать ключ (пароль, PIN-код, графический ключ) в качестве резервного способа аутентификации. Результат возвращается в виде записи TfgBiometricInfo.
TfgBiometricInfo.Kind - Тип биометрической аутентификации, доступной на устройстве:
- TouchID - Биометрическая аутентификация по отпечатку пальца.
- FaceID - Биометрическая аутентификация по лицу.
- Iris - Биометрическая аутентификация по радужной оболочке глаза.
TfgBiometricInfo.State - Текущее состояние биометрической аутентификации, доступной на устройстве.
- Error - При определении состояния произошла ошибка.
- Supported - Биометрическая аутентификация поддерживается на устройстве.
- Unsupported - Биометрическая аутентификация не поддерживается на устройстве.
- NotEnrolled - Пользователь не настроил биометрическую аутентификацию.
- Unavailable - Биометрическая аутентификация недоступна в данный момент.
- Locked - Биометрическая аутентификация заблокирована (например превышено количество попыток).
Важно: в случае, если вас интересует только биометрическая аутентификация и вы не планируете разрешать использовать ключ в качестве резервного варианта, устанавливайте параметр AAllowUsePasscode = False. В противном случае при ненастроенной биометрической аутентификации и наличии ключа вы получите State = Supported, что может создать впечатление доступности биометрической аутентификации.
События
OnAuthenticationError - Событие возникает при неудачной аутентификации. Подробности возникшей проблемы вы можете узнать из аргумента AError.
OnAuthenticationSuccess - Событие возникает при успешной аутентификации.
OnAuthenticationFallbackAction - Событие возникает, если пользователь выбрал резервный способ аутентификации. В этом событии вы можете предложить пользователям альтернативный вариант аутентификации - например по логину и паролю.
Использование биометрической аутентификации без компонента
Процесс биометрической аутентификации осуществляется с помощью интерфейса IFGXBiometricAuthentication, который вы можете получите напрямую из платформенного сервиса IFGXBiometricAuthenticationService, либо фабрики TfgBiometricAuthenticationFactory.
class function TfgBiometricAuthenticationFactory.CreateBiometricAuthentication: IFGXBiometricAuthentication; var LService: IFGXBiometricAuthenticationService; begin if not TfgPlatformServicesManager.RequestService(IFGXBiometricAuthenticationService, LService) then raise EfgPlatformService.CreateFmt(SServiceIsNotSupported, ['IFGXBiometricAuthenticationService']); Result := LService.CreateBiometricAuthentication; end;
Интерфейс IFGXBiometricAuthentication реализует Fluent interface, что позволяет удобно настраивать аутентификацию и запускать её.
TfgBiometricAuthenticationFactory.CreateBiometricAuthentication .SetFallbackAsPasscode; .SetSubtitle('Subtitle') .SetDescription('Description') .Execute(BiometricAuthenticationResul, 'Title');
Нет надобности хранить ссылку на IFGXBiometricAuthentication до окончания процесса аутентификации. Память будет автоматически освобождена при условии, что снаружи никто не держит ссылку на интерфейс.
Важно помнить, что нельзя повторно запускать процесс аутентификации для одного и того же экземпляра IFGXBiometricAuthentication не смотря то, с каким именно результатом завершился предыдущий процесс. В противном случае будет возбуждено исключение EfgBiometricAuthentication.
Настройки проекта
Есть некоторые отличия в настройках проекта между Android и iOS.
Для Android необходимо поставить галочку Enabled, чтобы при сборке проекта добавилась необходимая библиотека-зависимость.
Для iOS необходимо описать причину, почему вашему приложению необходим доступ к биометрической аутентификации. Данный текст будет показан пользователю при первой попытке приложения использовать биометрическую аутентификацию.
Минимально поддерживамые версии
Android: Android 6 (API level 23)
iOS: iOS 8.0
Заключение
Для того, чтобы лучше ознакомиться с возможностями нового сервиса мы подготовили демо пример "Authentication - Biometric\BiometricAuthentication.dproj", который дополнит коллекцию примеров, входящих в дистрибутив библиотеки FGX Native.
Спасибо за внимание и с наступающими вас новогодними праздниками!
- 7
- 3
1 Comment
Recommended Comments