Moduł AppFramework aplikacji AppStudio udostępnia wtyczkę Uwierzytelnianie służącą do uwierzytelniania użytkownika za pomocą podpisu biometrycznego na obsługiwanych urządzeniach. Funkcji tej można używać w połączeniu z usługą bezpiecznego przechowywania danych do przechowywania poświadczeń, tokenów i innych wrażliwych informacji oraz do uzyskiwania do nich dostępu. Aby korzystać z tej funkcjonalności, należy najpierw dołączyć poniższą instrukcję importu:
import ArcGIS.AppFramework.Authentication 1.0
Jako ilustracja tej funkcjonalności może służyć przykładowa aplikacja dostępna w aplikacji ArcGIS AppStudio lub w repozytorium GitHub udostępniającym przykładowe rozwiązania dla aplikacji AppStudio.
Aplikacja uwierzytelniania biometrycznego
Składnik BiometricAuthenticator obsługuje uwierzytelnianie za pomocą skanu odcisku palca na platformach iOS, macOS, Android i Windows, a także za pomocą funkcji Face ID na urządzeniach iPhone 10 i nowszych. Aby korzystać z tej funkcji, w używanej aplikacji musi być włączone Uwierzytelnianie biometryczne. Wyboru tej opcji dokonuje się w menu Ustawienia > Funkcje.
Aby korzystać z funkcji uwierzytelniania za pomocą odcisku palca, używane urządzenie musi posiadać wbudowany czujnik odcisku palca albo być wyposażone w przenośny czytnik, co jest warunkiem udostępnienia tej funkcji na urządzeniu, a odciski palca muszą być zarejestrowane na urządzeniu. Poniższy przykładowy kod wykorzystuje właściwości supported, activated i errorMessage w celu wyświetlenia informacji o możliwości korzystania z tej funkcjonalności. Jeśli aplikacja uwierzytelniania nie będzie mogła być użyta, zostanie wyświetlony komunikat o błędzie.
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
}
W komponencie BiometricAuthenticator istnieje metoda authenticate wyświetlającą natywne okno dialogowe uwierzytelniania za pomocą odcisku palca i właściwość message ustawiająca w oknie dialogowym komunikat dotyczący uwierzytelnienia. Aby korzystać z funkcji uwierzytelniania biometrycznego, musi być ustawiona właściwość message i należy wywołać metodę authenticate, mając świadomość, że właściwość message musi być ustawiona przed wywołaniem metody authenticate. Poniższy przykładowy kod ilustruje sposób użycia metody authenticate wraz z określonym komunikatem:
Component.onCompleted: {
BiometricAuthenticator.message = "Authenticate to log into your account"
BiometricAuthenticator.authenticate()
}
Komponent BiometricAuthenticator zawiera dwa sygnały wskazujące wynik procesu uwierzytelniania. Sygnał akceptacji jest wysyłany w sytuacji, gdy uwierzytelnienie przebiegło pomyślnie, a sygnał odrzucenia w przypadku niepowodzenia procedury uwierzytelniania jest emitowany wraz z informacją, czy powodem niepowodzenia był błąd, czy anulowanie operacji. Poniższy przykładowy kod wykorzystuje te sygnały do zwrócenia wyników skanowania dla wszystkich możliwych warunków niepowodzenia wraz z krótkim tekstem możliwym do odczytania przez użytkownika:
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;
}