Request authentication from users through passphrases or biometrics.


The Local Authentication framework provides facilities for requesting authentication from users with specified security policies.

For example, to request that the user authenticate using only Face ID or Touch ID you would use code such as this:

let myContext = LAContext()
let myLocalizedReasonString = <#String explaining why app needs authentication#>
var authError: NSError?
if #available(iOS 8.0, macOS 10.12.1, *) {
    if myContext.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &authError) {
        myContext.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: myLocalizedReasonString) { success, evaluateError in
            if success {
                // User authenticated successfully, take appropriate action
            } else {
                // User did not authenticate successfully, look at error and take appropriate action
    } else {
        // Could not evaluate policy; look at authError and present an appropriate message to user
} else {
    // Fallback on earlier versions



class LAContext

An LAContext object represents an authentication context. The LAContext class provides a programmatic interface for evaluating authentication policies and access controls, managing credentials, and invalidating authentication contexts.