Дизайн экранов восстановления пароля
Сегодня я хотел бы поделится с вами решением простой, на первый взгляд, задачи: нарисовать экраны восстановления пароля. Хороший дизайнер перед проектированием посмотрит как подобную задачу уже решали до него.
Покопавшись в статьях пересмотрев множество вариантов я выбрал то флоу, которое мне подходит больше всего. А вам я покажу все варианты которые нашел.
Возможно, при входе пользователь еще не знает что забыл пароль, тогда у нас будет попытка авторизоваться.
Вариант событий 1
Пользователь вводит свой почтовый адрес и переходит к полю для ввода пароля. Тут мы, как заботливые дизайнеры ставим галочку напротив поля с почтой. Таким образом мы показали что аккаунт есть в системе и поле прошло валидацию.
Вариант событий 2
Пользователь вводит почтовый адрес, пароль и нажимает кнопку войти. Мы как заботливые дизайнеры, покажем что такой аккаунт не найден.
Оба варианта плохие. Они дают информацию злоумышленнику о наличии в системе данного аккаунта. Что само по себе может быть нежелательно. Ведь сервис, например, может носить компрометирующий характер. Также это увеличит вероятность взлома.
Выход: Самым простым решением, будет выдавать ошибку: «Почтовый адрес или пароль не верны». Да, мы не облегчаем таким образом жизнь пользователю. Теперь он не знает в каком месте ошибся, но тут нужно выбирать чем жертвовать, безопасностью или удобством.
Где же восстановление пароля?
После того как пользователь перебрал все варианты своих паролей. Проверил что не записал его в блокнот, он переходит к функции восстановления пароля. Тут нужно не забыть дать пользователю возможность вернуться назад, если вдруг в памяти всплыл еще один вариант пароля. Для удобства мы можем сразу подставить почту с прошлого шага.
Итак, пользователь ввел свои данные и нажал сбросить пароль. На этом шаге так же лучше не показывать информацию о наличии аккаунта в системе. Я ограничился сообщением что, если аккаунт существует то на почту придет письмо с инструкцией. Я для себя решил что кроме сообщения оставлю кнопку вернуться на главную. Понимаю, что пользователь скорее всего сразу пойдет на почту и будет ждать письмо со ссылкой. Еще вариант сделать автоматическую переадресацию на вход, делать пользователю там нечего, но и не оставлять выхода с экрана не хотелось.
Опишу нежелательные кейсы, которые используют некоторые сервисы, для восстановления пароля через почту
- Присылать старый пароль пользователю на email.
- Генерировать временный пароль (в некоторых случаях я встречал такие кейсы, но там хотя бы сразу была принудительная смена пароля при первой авторизации).
Оптимальным считается уникальная ссылка на сброс пароля.
Она должна быть одноразовой и становиться неактивной после смены пароля или авторизации пользователя.
Перейдя по ссылке пользователь должен попадать на экран ввода нового пароля.
Для себя я решил после ввода нового пароля сразу давать пользователю возможность авторизоваться, о чем написал на кнопке.
Еще вариант, после смены пароля писать о том, что пароль успешно изменен. И делать переадресацию на экран входа, где почта уже будет авто заполнена, но пароль нужно будет ввести еще раз.
Что мы не разбирали и о чем стоит подумать:
- Сколько раз пользователь может ошибаться при вводе пароля на экране входа?
- Давать ли возможность пользователю использовать старый пароль на этапе придумывания нового? Или пароль, который когда-то был в системе, некоторые сервисы не дают вводить пароли если они немного похожи на старые.
- Просить создавать сложные пароли? И пропускать ли простые пароли вроде password123?
- Что делать если у пользователя нет больше доступа к почте?
- Использовать контрольные вопросы при восстановлении пароля?
Тут замечу, что многие не рекомендуют использование контрольных вопросов на подобии назовите имя вашего питомца, такую информацию легко получить из социальных сетей. - Есть ли возможность сделать регистрацию через социальные сети или телефон?
Ведь это решает проблему запоминания большого количества паролей, и снимет необходимость наличия флоу с восстановлением пароля. - Ряд сервисов заставляет менять пароль раз в пол года, нужно ли это для вашего флоу?
Всем большое спасибо за внимание. Надеюсь вы нашли для себя что-то полезное.