В моем приложении пользователь может аутентифицироваться/войти в мой сервер, используя адрес электронной почты/пароль. Теперь я думаю о внедрении Touch ID.
Но меня смущает процесс входа в систему с использованием сенсорного идентификатора.
Используя приведенный ниже код, я могу легко аутентифицировать пользователя:
func authenticateUser() {
let context = LAContext()
var error: NSError?
if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) {
let reason = "Identify yourself!"
context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: reason) {
[unowned self] success, authenticationError in
DispatchQueue.main.async {
if success {
self.runSecretCode()
} else {
let ac = UIAlertController(title: "Authentication failed", message: "Sorry!", preferredStyle: .alert)
ac.addAction(UIAlertAction(title: "OK", style: .default))
self.present(ac, animated: true)
}
}
}
} else {
let ac = UIAlertController(title: "Touch ID not available", message: "Your device is not configured for Touch ID.", preferredStyle: .alert)
ac.addAction(UIAlertAction(title: "OK", style: .default))
present(ac, animated: true)
}
}
Но я не знаю, что это за пользователь.
Итак, когда пользователь создает учетную запись, должен ли я хранить что-то вроде идентификатора устройства (если он существует) в моей БД, тогда, когда пользователи используют сенсорный идентификатор, я могу проверить, какой это идентификатор устройства, а затем войти в систему?