Новая новая альтернатива формам входа
Браузеры позволяют сохранять пароли и восстанавливать их. Таким образом, мы можем использовать слишком длинные и сложные строки, чтобы их нельзя было запомнить. Некоторые браузеры, с поддержкой внешних менеджеров паролей или без них, генерируют для нас новые пароли и легко ими управляют.
Однако в большинстве случаев все, что касается паролей, по-прежнему основывается на способности браузера угадывать, какое поле ввода содержит имя пользователя, а какое - пароль.
Чтобы избавиться от догадок и обеспечить дальнейшую автоматизацию, вот новый Веб-API управления учетными данными. На момент написания он работает только в Chrome.
API довольно прост.
Вот как сохранить пароль в браузере:
const cred = new PasswordCredential({ id: user.username, password: user.password, name: `${user.firstName || ''} ${user.lastName || ''}`.trim(), iconURL: user.avatar, }) await navigator.credentials.store(cred)
Прежде чем вернуться к показу старомодной формы входа в систему, мы можем попытаться получить пароль напрямую из хранилища учетных данных:
const cred = await navigator.credentials.get({password: true})
Вы можете увидеть рабочий пример здесь. Идите вперед и зарегистрируйте нескольких пользователей, прежде чем нажимать Войти, чтобы вы могли пользоваться элегантным селектором учетных данных Chrome. В примере все происходит в Javascript, а бэкэнд моделируется прямо в браузере.
При написании примера самой сложной частью было копирование реализации MD5 для получения пользовательского Gravatar :)
Этот пост изначально появился здесь.