Чек-лист для работы Password Autofill и Strong Passwords suggestion в iOS-приложении
Для поддержки автозаполнения пароля и генерации надежного пароля необходимо соблюдение нескольких условий - на стороне сервера, приложения и устройства. Главное из них - приложение должно ассоциироваться с соответствующим доменом, чтобы использовать сохраненный пароль как на сайте, так и в приложении.
Как это работает
В приложении добавляется Associated Domains, на сервере этого домена размещается apple-app-site-association файл (далее assa-файл) с идентификаторами приложения. При установке приложения на устройство iOS проверяет ассоциативные домены и пытается скачать assa-файл. Если все прописано правильно, Password AutoFill и предложение Strong Passwords будут работать.
Итак, в приложении необходимо:
Добавить Associated Domains в формате
webcredentials:example.com
. Домен должен быть https, с валидным сертификатом и без редиректа.На экранах регистрации, авторизации и смены пароля для текстовых полей нужно правильно задать
.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)
Источники: