首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LocalAuthentication问题

LocalAuthentication问题
EN

Stack Overflow用户
提问于 2019-05-08 08:26:37
回答 1查看 796关注 0票数 2

我有一个应用程序,用户可以使用TouchID / FaceID (如果可用、注册和启用)或密码进行身份验证。所有这些选项都可以在应用程序的设置中设置,并存储在UserDefaults中。一旦应用程序加载,它就会检查这些Bool键在UserDefaults中是否有真正的值,并采取相应的行动。

当用户有一个带有TouchID/FaceID的设备,但他们还没有启用并注册它时,我的问题就来了。在这种情况下,应用程序应该只显示密码屏幕。但是,当我禁用了选项(用于测试目的)时,TouchID就会在我的iPhone上显示。根据苹果公司的文件,它说:

如果Touch ID或Face可用、注册,且未禁用,则首先要求用户提供该ID或Face。否则,将要求他们输入设备密码。

在模拟器上,我看到了密码屏幕,但在我的iPhone上,我看到TouchID在禁用时弹出,UserDefaults返回该键的false。为什么会发生这种事?我做错了什么?

代码语言:javascript
复制
override func viewDidLoad() {
   super.viewDidLoad()
   setUI()
}

 func setUI() {
    let faceTouchIdState = UserDefaults.standard.bool(forKey: DefaultsKeys.faceTouchIdState)
    let passcodeState    = UserDefaults.standard.bool(forKey: DefaultsKeys.passcodeState)

    if faceTouchIdState {
       print("Authenticate")
       authenticate()
    }
    else {
       print("Passscode")
       showEnterPasscode()
    }
}

func showEnterPasscode() {
    let context = LAContext()
    var errMess: NSError?
    let policy = LAPolicy.deviceOwnerAuthentication

    if context.canEvaluatePolicy(policy, error: &errMess) {
        context.evaluatePolicy(policy, localizedReason: "Please authenticate to unlock the app.") { [unowned self] (success, err) in
        DispatchQueue.main.async {
            if success && err == nil {
               self.performSegue(withIdentifier: "GoToTabbar", sender: nil)
            }
            else {
                 print(err?.localizedDescription)
            }
           }
        }
    }
    else {
        print("cannot evaluate")
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-08 08:54:23

你的代码没有什么问题。我相信问题在于你是如何做到这一点的:“我已经禁用了选项(用于测试)”。

因为提示您弹出了"Touch ID“,这就证明了您的生物识别功能并没有被真正禁用。我猜想你会切换其中一个“使用触摸ID”开关,并认为这样做会禁用你的应用程序中的生物识别功能,但它不会。

如果要测试设备中密码的回退:

  • 试着打开所有指纹

  • 禁用您的指纹,通过输入未注册的指纹在您的应用多次。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56036496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档