Среда AppStudio предоставляет плагин аутентификации, который проводит проверку подлинности пользователей посредством биометрической подписи на поддерживаемых устройствах. Вы можете этим пользоваться в связке с безопасным хранилищем для сохранения данных учётных записей, токенов и прочей конфиденциальной информации. Чтобы использовать эту функциональность, вы сначала должны включить следующие утверждения импорта:
import ArcGIS.AppFramework.Authentication 1.0
Пример подобного функционала см. в примере приложения, доступном в ArcGIS AppStudio или в репозитории образцов AppStudio на GitHub.
Биометрический аутентификатор
Компонент BiometricAuthenticator поддерживает аутентификацию по отпечатку пальца на платформах iOS, macOS, Android и Windows, а также face ID на iPhone 10 и более новых. Чтобы использовать эту функциональность, вам надо включить в приложении Биометрическую аутентификацию, что можно сделать через Настройки > Возможности.
Чтобы использовать аутентификацию по отпечатку пальца, устройство должно быть оборудовано встроенным сенсором отпечатков пальцев или использовать внешний сенсор, отпечатки пальцев должны быть уже введены в устройство. Этот пример кода использует свойства supported, activated и errorMessage для отображения, поддерживается ли эта функциональная возможность. Если аутентификатор использовать нельзя, появится сообщение об ошибке.
Text {
id: supportCheck
text: BiometricAuthenticator.supported ? "Fingerprint supported" : "Fingerprint not supported"
}
Text {
id: activeCheck
text: BiometricAuthenticator.activated ? "Fingerprint activated" : "Fingerprint not activated"
anchors.top: supportCheck.bottom
}
Text {
id: errormessage
text: BiometricAuthenticator.errorMessage
anchors.top: activeCheck.bottom
}
Компонент BiometricAuthenticator использует метод authenticate, который отображает системное диалоговое окно аутентификации по отпечатку, а также свойство message, которое задает сообщение об аутентификации в диалоговом окне. Чтобы использовать биометрическую аутентификацию, необходимо задать свойство message и вызвать метод authenticate, убедившись, что message настроен до вызова authenticate. Следующий пример кода показывает, как использовать метод authenticate вместе с указанным сообщением:
Component.onCompleted: {
BiometricAuthenticator.message = "Authenticate to log into your account"
BiometricAuthenticator.authenticate()
}
BiometricAuthenticator содержит два сигнала для показа результатов процесса аутентификации. Принимаемый сигнал испускается, когда аутентификация прошла успешно, а отклонённый сигнал испускается с объяснением, когда аутентификация завершилась неудачно из-за ошибки или отмены. В следующем примере кода эти сигналы используются для возврата результатов сканирования, при этом каждому возможному состоянию отказа даётся короткая строка, которую пользователь может прочитать:
Text {
id: status anchors.top: errormessage.bottom
}
Connections {
target: BiometricAuthenticator
onAccepted: {
status.text = "Success"
}
onRejected: {
status.text = constructMessage(reason) }
}
function constructMessage(reason) {
var result = "";
switch (reason) {
case 1:
result = qsTr("Cancelled By User");
break;
case 2:
result = qsTr("Invalid Credentials");
break;
case 3:
result = qsTr("Not Configured");
break;
case 4:
result = qsTr("User Fallback");
break;
case 5:
result = qsTr("Permission Denied");
break;
case 6:
result = qsTr("Biometric Not Supported");
break;
case 7:
result = qsTr("Bad Capture");
break;
case 8:
result = qsTr("Platform Not Supported");
break;
default:
result = qsTr("Unknown");
}
return result;
}