问题描述
我正在尝试使用设备密码对用户进行身份验证。而且我想直接查看密码板。但是对于下面的代码,我总是必须先通过生物特征身份验证,然后才能通过密码进行身份验证。如何直接获取密码板?
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
}
}
}
}
}
谢谢
解决方法
如果设备具有生物识别功能且用户已注册,则仅使用密码的本地身份验证不可用。
您可以通过使用 LAPolicy.deviceOwnerAuthenticationWithBiometrics
来防止回退到密码,但没有直接进入密码选项的政策。
LAPolicy.deviceOwnerAuthentication
将始终先尝试生物识别(如果可用),然后再返回设备密码。