Search
Write a publication
Pull to refresh

Чек-лист для работы 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. Гайд с примером реализации

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.