【问题标题】:Swift & deviceOwnerAuthentication : How to view passcode authentication board directly without going through Biometric Auth first?Swift & deviceOwnerAuthentication : 如何直接查看密码认证板而不先通过生物认证?
【发布时间】:2021-07-09 06:25:23
【问题描述】:

我正在尝试使用设备密码对用户进行身份验证。我想直接查看密码板。但是使用下面的代码,我总是必须先通过生物特征认证并且失败才能使用密码进行认证。如何直接获取密码板?

import UIKit
import LocalAuthentication

class ViewController: UIViewController {

    @IBOutlet weak var userButton: UIButton!
    
    @IBOutlet weak var resultLabel: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    @IBAction func buttonPressed(_ sender: UIButton) {
        authenticateUser()
    }
    
    func authenticateUser() {
        let context = LAContext()
        
        context.evaluatePolicy(LAPolicy.deviceOwnerAuthentication, localizedReason: "Please authenticate to proceed.") { (success, error) in
            DispatchQueue.main.async {
                if success {
                    self.resultLabel.text = "Success"
                    print("Success")
                }else{
                    self.resultLabel.text = "Failed"
                    print("Failed")
                    return
                }
            }
            
            
            
            
        }
    }
    
}

谢谢

【问题讨论】:

标签: ios swift authentication biometrics passcode


【解决方案1】:

如果设备具有生物识别功能并且用户已注册,则仅使用密码的本地身份验证不可用。

您可以使用LAPolicy.deviceOwnerAuthenticationWithBiometrics 防止回退到密码,但没有直接针对密码选项的策略。

LAPolicy.deviceOwnerAuthentication 将始终先尝试生物识别(如果可用),然后再返回设备密码。

【讨论】:

  • 我在下面找到并尝试了这种方法。它有点工作,但我不知道这些代码做了什么。 stackoverflow.com/questions/46723662/…
  • 该代码将对象放入钥匙串并检索集合,设置“需要密码”策略。它与简单的本地身份验证略有不同。
猜你喜欢
  • 2012-05-02
  • 2014-01-26
  • 2016-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多