Как использовать Touch ID для более быстрого и удобного входа в приложение

Это обычное наблюдение, что пользователи немного отвлекаются на вашем экране входа в систему. Вот как я борюсь со своей зависимостью от facebook💪. Из этого руководства вы узнаете, как использовать Touch ID для более быстрого и удобного входа в систему. Я скоро проведу вас по шагам, позвольте мне немного вас проинформировать.

Большинство приложений используют Touch ID в качестве аутентификации второй степени. Это руководство НЕ предназначено для аутентификации второй степени (хотя вы тоже можете это сделать, если прочитаете эту статью). Речь идет об использовании Touch ID для вызова сервера для входа пользователя.

Теперь, как получить учетные данные пользователя из отпечатка большого пальца, чтобы сделать этот вызов сервера? 🤔 Здесь на помощь приходит служба связки ключей. Когда пользователь регистрируется или входит в ваше приложение в первый раз, сохраните учетные данные в связке ключей вашего приложения. В следующий раз, когда пользователь выйдет из системы, а затем снова зайдет на экран входа в систему, появится всплывающее окно с просьбой войти в систему с помощью Touch ID. Когда пользователь предоставляет действительный Touch ID, получите те учетные данные, которые вы сохранили ранее, в связку ключей, выполните вызов API и Бум! 🤝.

Итак, здесь есть два шага:

  • Во-первых, вам нужно сохранить учетные данные пользователя в связке ключей. Вы можете сделать это, когда пользователь зарегистрируется или когда он впервые войдет в ваше приложение.
  • Во-вторых, используйте Touch ID для проверки пользователя, а затем извлеките его учетные данные из службы связки ключей.

Я использую KeychainPasswordItem, красивую оболочку над Keychain, доступную на developer.apple.com здесь. У них есть очень хороший, подробный пример того, как использовать эту общую связку ключей. Иди посмотри.

В качестве части первого шага используйте приведенный ниже метод вызова с адресом электронной почты пользователя в качестве учетной записи и паролем, когда пользователь регистрируется и входит в систему.

Мы сохраняем адрес электронной почты пользователя в UserDefaults, чтобы использовать его позже. Было бы лучше, если бы вы показывали всплывающее окно, чтобы спросить у пользователя разрешение на использование этой функции. Я пропускаю эту часть в этом уроке😁.

Используйте Touch ID для доступа к связке ключей

Чтобы использовать Touch ID, вам сначала нужно добавить платформу LocalAuthentication в двоичные файлы вашего проекта. Вы можете сделать это, перейдя в Проект ›Этапы сборки› Связать двоичный файл с библиотеками:

Затем импортируйте фреймворк LocalAuthentication в свой контроллер представления входа.

import LocalAuthentication

Мы заполнили текстовое поле userName адресом электронной почты пользователя, который мы сохранили ранее в UserDefaults.

Далее нам нужно проверить, возможна ли аутентификация на текущем устройстве. Посмотрите следующий код:

Мы вызываем AuthenticateUserUsingTouchId () в viewDidAppear (). LAContext является подклассом NSObject и представляет наш текущий контекст аутентификации. Теперь, если аутентификация возможна, проверьте подлинность Touch ID, вызвав функцию AssessmentPolicy ().

context.evaluatePolicy () дает нам всплывающее окно Touch ID с нашим последним именем пользователя, к которому мы обращались, которое мы указали в качестве localizedReason в методе AssessmentPolicy ().

На этом завершается часть 1 шага 2: получение пользователем аутентификации с помощью Touch ID. Следующим шагом является использование Touch ID для доступа к Связке ключей, где мы сохраняем или извлекаем учетные данные пользователя для входа в систему.

Когда пользователь предоставляет действительный Touch ID, нам нужно загрузить пароль из Связки ключей и выполнить наш POST-вызов для входа пользователя.

if authSuccessful {             self.loadPasswordFromKeychainAndAuthenticateUser(lastAccessedUserName)
}

Вот и все! Вы можете обновить свою структуру аутентификации для поддержки нескольких учетных записей. После проверки подлинности Touch ID отобразите всплывающее окно и попросите пользователя выбрать учетную запись, в которую он хочет войти. Затем получите учетные данные пользователя, соответствующие этой учетной записи, из Связки ключей. Спасибо за прочтение!