Ho la seguente implementazione di LocalAuthentication come descritto in molti posti.TouchID activateTouchWithResponse restituisce il successo senza richiedere l'impronta digitale
context.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: "Logging in with Touch ID", reply: { (success : Bool, error : NSError?) -> Void in
dispatch_async(dispatch_get_main_queue(), {
if success {
let alert = UIAlertController(title: "Success", message: "", cancelButtonTitle: "Great!")
self.presentViewController(alert, animated: true, completion: nil)
}
if let error = error {
var message :String
switch(error.code) {
case LAError..AuthenticationFailed:
message = "There was a problem verifying your identity."
case LAError..UserCancel:
message = "You pressed cancel."
case LAError..UserFallback:
message = "You pressed password."
default:
message = "Touch ID may not be configured"
}
let alert = UIAlertController(title: "Error", message: message, cancelButtonTitle: "Darn!")
self.presentViewController(alert, animated: true, completion: nil)
}
})
})
Ma dopo che ho autenticato con successo con la mia impronta digitale, quindi evaluatePolicy (, localizedReason :, risposta :) restituisce successo senza richiedere per qualunque delle impronte digitali. In realtà sto abilitando o disabilitando TouchID con un UISwitch, quindi dopo la disattivazione e la riattivazione, desidero re-autenticare e immettere di nuovo l'impronta digitale.
Perché il caching è l'autenticazione?
Grazie
aggiungere l'errore come un altro se e vedere cosa succede. – Konsy
L'errore è nullo. La seconda volta che valuto la politica ottengo successo e errore nullo senza essere pronto a toccare il pulsante. –
Prova a fare se error! = Nil invece – Konsy