Friday, 4 October 2019

TouchID authentication inside Siri Intent Extension

I have an Intent Extension with the View category that is working pretty good for showing an app info.

Now I need to enable TouchID for security reasons, so the user needs to authenticate before requesting the info.

I tried this:

func handle(intent: GetSaldoIntent, completion: @escaping (GetSaldoIntentResponse) -> Void) {

    let myContext = LAContext()

    myContext.evaluatePolicy(
    .deviceOwnerAuthenticationWithBiometrics,
    localizedReason: "Unlock to see the info",
    reply: { [unowned self] (success, error) -> Void in
        if( success ) {
            completion(GetSaldoIntentResponse.success(saldo: String(self.paymentProvider.balance)))
            return
            }
        })
        completion(GetSaldoIntentResponse(code: .failureRequiringAppLaunch, userActivity: nil))
    }
}

But the TouchID dialog closes the Siri screen and then the conversation ends:

screens

Is there a way to request for TouchId validation inside an Intent Extension?

I know PKPayment do something similar, but this isn't a transaction so I can't use ApplePay.



from TouchID authentication inside Siri Intent Extension

No comments:

Post a Comment