Как стать автором
Обновить

Чек-лист для работы Password Autofill и Strong Passwords suggestion в iOS-приложении

Для поддержки автозаполнения пароля и генерации надежного пароля необходимо соблюдение нескольких условий - на стороне сервера, приложения и устройства. Главное из них - приложение должно ассоциироваться с соответствующим доменом, чтобы использовать сохраненный пароль как на сайте, так и в приложении.

Как это работает

В приложении добавляется Associated Domains, на сервере этого домена размещается apple-app-site-association файл (далее assa-файл) с идентификаторами приложения. При установке приложения на устройство iOS проверяет ассоциативные домены и пытается скачать assa-файл. Если все прописано правильно, Password AutoFill и предложение Strong Passwords будут работать.

Итак, в приложении необходимо:

  1. Добавить Associated Domains в формате webcredentials:example.com. Домен должен быть https, с валидным сертификатом и без редиректа.

  2. На экранах регистрации, авторизации и смены пароля для текстовых полей нужно правильно задать .textContentType:

    • на экранах регистрации и смены пароля: .textContentType = .newPassword.

    • на экране авторизации: .textContentType = .password.

    • эвристика автозаполнения пароля предполагает наличие поля с типом .textContentType = .username

    Также можно установить правила генерации надежного пароля, прописав их в свойстве текстового поля .passwordRules:

    .passwordRules = UITextInputPasswordRules(descriptor: "required: upper; required: lower; required: digit; max-consecutive: 2; minlength: 8;")

Что увидит пользователь?
  • При регистрации будет предложено использовать надежный пароль

  • При авторизации будет предложено использовать пароль из Keychain

  • При смене пароля будет предложено использовать надежный пароль и обновить его в Keychain

На сервере

Необходимо создать файл с названием apple-app-site-association, без расширения. В файле должен быть json:

{

"webcredentials": {

"apps": ["Application_Identifier_Prefix.Bundle_Identifier"]

}

}

Далее файл нужно разместить в корневую директорию и/или в .well-known.

В результате содержимое assa-файла должно быть доступно по такой ссылке:

https://<fully qualified domain>/apple-app-site-association

и/или

https://<fully qualified domain>/.well-known/apple-app-site-association

Для debug версии приложения

Для того, чтобы проверить правильность настройки текстовых полей без подключения сервера, можно включить developer mode, а именно дописать ?mode=developer после домена в секции Associated Domains. Например webcredentials:example.com?mode=developer. В данном случае не будет проверки assa-файла, но автозаполнение пароля и предложение надежного пароля будут работать как будто связь с доменом установлена.

На устройстве

Для тестирования Strong Passwords suggestion и Password Autofill нужно использовать реальное устройство и в настройках разрешить использование:

  • Keychain (Settings > [your name] > iCloud > Keychain)

  • Password Autofill (Settings > Passwords > AutoFill Passwords)

Источники:

  1. Supporting Associated Domains

  2. About the Password AutoFill Workflow

  3. Enabling Password AutoFill on a Text Input View

  4. Customizing Password AutoFill Rules

  5. Гайд с примером реализации

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.