Authentification par empreinte

Bonjour,
je cherche quelques renseignements sur la procédure d'identification par empreinte pour pouvoir entrer le code en cas d'empreintes inopérantes.
Le code que l'on retrouve généralement est le suivant :

"func authenticateUser() {
let context = LAContext()
var error: NSError?

    if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) {
        let reason = "Identify yourself!"

        context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: reason) {
            [unowned self] success, authenticationError in

            DispatchQueue.main.async {

                if success {
                    self.runSecretCode()
                } else {
                    let ac = UIAlertController(title: "Authentication failed", message: "Sorry!", preferredStyle: .alert)
                    ac.addAction(UIAlertAction(title: "OK", style: .default))
                    self.present(ac, animated: true)
                }

            }
        }
    } else {
        let ac = UIAlertController(title: "Touch ID not available", message: "Your device is not configured for Touch ID.", preferredStyle: .alert)
        ac.addAction(UIAlertAction(title: "OK", style: .default))
        present(ac, animated: true)
    }
}"

Le premier message d'alerte en cas de fausse empreinte indique bien une possibilité d'entrer un mot de passe, mais je ne vois pas la possibilité d'activer une fenêtre pour entrer ce mot de passe.
Si quelqu'un peut orienter mes recherches
Merci
Jean-Luc

Réponses

  • Peut-être une zone de saisie de mot de passe invisible à la création et que tu rendras visible ou pas en fonction du retour du test de l'empreinte.

  • Merci pour ta réponse,
    mais en fait, en cas d'empreinte non reconnue, il apparaît le message suivant (voit photo).
    La touche" mot de passe" affiche un message d'alerte 'authentification failed", le même qu'en cas de 3 essais infructueux.
    En fait, je ne sais pas ou trouver le code du message d'alerte de la photo jointe (désolé pour la qualité de la photo)
    Peut-être faut-il changer le code
    "let ac = UIAlertController(title: "Authentication failed", message: "Sorry!", preferredStyle: .alert)
    ac.addAction(UIAlertAction(title: "OK", style: .default))
    self.present(ac, animated: true)"

  • Vu sur le net
    context.localizedFallbackTitle = "Mot de passe"
    context.evaluatePolicy(.......... // reste de ton code

    A voir?

  • Il me semblait que ce n'est pas toi qui la gère normalement... C'est le système.
    Il teste l'empreinte, si tout est okay, si cela ne fonctionne pas, il propose de réessayer/taper le code de déverouillage de l'iPhone... Si après cela, cela rate, tu as "success == false". Libre à toi de proposer ton propre code (c'est le cas de certaines applications qui utilisent un code qui peut-être différent de celui de déverrouillage de l'iPhone), non ?

    Le reste de la personnalisation étant dans NSFaceIDUsageDescription dans le .plist

  • Oui c'est ça.
    Il propose 3 tentatives d'identification avant le success == false
    Par contre, en tapant sur mot de passe, il m'envoie un message d'alerte "authentification failed" !!
    Et là, je ne vois pas comment ajouter une action pour entrer un mot de passe
    Et comme je suis encore avec IOS 12.5, je n'ai pas NSFaceIDUsageDescription

Connectez-vous ou Inscrivez-vous pour répondre.