MASTG-KNOW-0056: Framework de Autenticação Local

O framework de autenticação local da Apple, Local Authentication, fornece recursos para solicitar autenticação por senha ou Touch ID dos usuários. Os desenvolvedores podem exibir e utilizar um prompt de autenticação usando a função evaluatePolicy da classe LAContext.

Duas políticas disponíveis definem as formas aceitáveis de autenticação:

  • deviceOwnerAuthentication (Swift) ou LAPolicyDeviceOwnerAuthentication (Objective-C): Quando disponível, o usuário é solicitado a realizar autenticação por Touch ID. Se o Touch ID não estiver ativado, a senha do dispositivo é solicitada. Se a senha do dispositivo não estiver habilitada, a avaliação da política falha.

  • deviceOwnerAuthenticationWithBiometrics (Swift) ou LAPolicyDeviceOwnerAuthenticationWithBiometrics (Objective-C): A autenticação é restrita à biometria, onde o usuário é solicitado a usar o Touch ID.

A função evaluatePolicy retorna um valor booleano indicando se o usuário foi autenticado com sucesso.

O site Apple Developer oferece exemplos de código para Swift e Objective-C. Uma implementação típica em Swift é mostrada a seguir.

let context = LAContext()
var error: NSError?

guard context.canEvaluatePolicy(.deviceOwnerAuthentication, error: &error) else {
    // Não foi possível avaliar a política; verifique o erro e apresente uma mensagem apropriada ao usuário
}

context.evaluatePolicy(.deviceOwnerAuthentication, localizedReason: "Por favor, autorize o acesso a esta área") { success, evaluationError in
    guard success else {
        // O usuário não foi autenticado com sucesso, verifique evaluationError e tome a ação apropriada
    }

    // Usuário autenticado com sucesso, tome a ação apropriada
}