O AppStudio AppFramework fornece um complemento de Autenticação que autentica usuários através de sua assinatura biométrica em dispositivos suportados. Você pode utilizar isto em conjunto com armazenamento seguro para armazenar e acessar credenciais, tokens ou qualquer informação sensível. Para utilizar esta funcionalidade, primeiro você precisa incluir a seguinte declaração de importação:
import ArcGIS.AppFramework.Authentication 1.0
Para obter um exemplo desta funcionalidade, consulte o aplicativo de amostra disponível em ArcGIS AppStudio ou no repositório de GitHub das amostras do AppStudio.
Autenticador Biométrico
O componente BiometricAuthenticator suporta autenticação via escaneamento de impressão digital nas plataformas do iOS, macOS, Android e Windows, como também, face ID no iPhone 10 e posterior. Para utilizar este recurso, seu aplicativo deve ter Autenticação Biométrica habilitada, que pode ser feito em Configurações > Recursos.
Para utilizar autenticação de impressão digital, o dispositivo do usuário deve ter um sensor de impressão digital incorporado ou um leitor portátil para habilitar este recurso em seu dispositivo e suas impressões digitais devem estar inscritas no seu dispositivo. A seguinte amostra de código utiliza as propriedades supported, activated e errorMessage para mostrar se esta funcionalidade é suportada. Se o autenticador não puder ser utilizado, uma mensagem de erro será exibida.
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
}
O componente BiometricAuthenticator tem um método authenticate que exibe uma caixa de diálogo de autenticação de impressão digital nativa e a propriedade message que define a mensagem de autenticação na caixa de diálogo. Para utilizar a autenticação biométrica, você deve definir a propriedade message e solicitar o método authenticate , estando ciente que message precisa ser definida antes de solicitar authenticate. A seguinte amostra de código mostra como utilizar o método authenticate ,juntamente com uma mensagem especificada:
Component.onCompleted: {
BiometricAuthenticator.message = "Authenticate to log into your account"
BiometricAuthenticator.authenticate()
}
O componente BiometricAuthenticator contém dois sinais para exibir o resultado do processo de autenticação. O sinal aceito é emitido quando a autenticação é bem sucedida, enquanto o sinal rejeitado é emitido, com explicação, quando a autenticação falhou devido a um erro ou cancelamento. A seguinte amostra de código utiliza estes sinais para retornar os resultados de uma varredura, com cada possível condição de falha sendo fornecida para uma string curta legível pelo usuário:
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;
}