ID:0
Рубрика #мюсли
В комментариях к прошлому посту отметились свидетели логина через имейл и пароль, мол, его сделать — 5 минут из опенсорсных либ, а вот с OAuth придется попариться. Я думал, что настолько субъективно мыслящих людей у меня на канале больше нет — оказалось, еще остались люди, которые любят переусложнять свои продукты (и в итоге либо не запускают, либо запускают никому не нужный переусложненный отстой).
Но ничего страшного, их я побанил, их больше нет, рациональность снова восторжествовала. А в этом посте я раз и навсегда объясню вам, почему логин через имейл и пароль для MVP — это смерть, а логин через соцсети — это кошерно.
Сразу отмечу, что люди, у которых "нет социальных сетей" и которым "не нравится логин через социальные сети" с огромной вероятностью не просто не ваша целевая аудитория, а это тот самый сегмент пользователей, которым никак не угодишь — этих пользователей надо обходить стороной, денег они вам не дадут, а головняка создадут. И вот уже первое преимущество делать социальный логин: вы отфильтровываете этих "неправильных" пользователей.
Но давайте посмотрим, что нужно сделать разработчику, чтобы подключить логин через имейл и пароль:
— Сохранять созданные учетки в базе данных
— Хранить у себя хеши паролей и обеспечивать безопасность хранения этих хешей
— Убедиться в надежности работы функций хеширования паролей и верификации хешей
— Обрабатывать ошибки неправильного пароля, попытки регистрации уже существующего имейла
— Реализовать флуд-контроль, чтобы пользователи не могли регистрировать тонны аккаунтов-ботов
— Реализовать верификацию имейла (свой SMTP сервер или платное стороннее решение)
— Реализовать восстановление пароля
— Ну и, собственно говоря, реализовать регистрацию и логин через имейл и пароль
Наверняка, я что-то еще забыл, а теперь давайте посмотрим, какое трение у пользователя, который хочет зарегистрироваться у вас в сервисе:
1. Человек зашел на сайт
2. Нажал "Зарегистрироваться"
3. Ввел свой имейл
4. Придумал пароль, который подходит подо все правила
5. Нажал "Зарегистрироваться"
6. Открыл почтовый клиент и подождал, пока придет письмо верификации аккаунта
7. Кликнул на кнопку верификации аккаунта
После этого пользователь наконец-то начнет пользоваться вашим сервисом. Каков сценарий последующего логина или логина с мобильных устройств? Поиск (или попытки вспомнить) пароля, возможно восстановление пароля, копипейст или ручной ввод длинного надежного пароля.
А теперь посмотрим, что нужно сделать разработчику, чтобы добавить логин через условный Гугл:
— Создать приложение в Гугл Клауде и получить идентификатор клиента
— Добавить на сайт компонент кнопки "Войти через Гугл" и дать ему идентификатор клиента
— Обработать на сервере создание учетки пользователя
Хм, а где все эти танцы с бубном вокруг верификации учеток, обработки ошибок, флуд-контроля или все тому подобное? Черт, да их нет! А как выглядит теперь трение пользователя, который хочет начать пользоваться нашим продуктом?
1. Человек зашел на сайт
2. Кликнул на "Войти через Гугл"
Вот и все. Теперь и думайте, что же проще реализовать, поддерживать разработчику — и что проще для пользователя, чтобы начать пользоваться вашим продуктом.
Надеюсь, в следующий раз, когда вы будете запускать свой новый продукт, вы начнете упрощать, а не усложнять всем жизнь: себе, разработчикам и пользователям. Выбирать авторизацию через имейл и пароль могут только садомазохисты, не иначе.
С каждым разом, как пользуюсь этим подходом с кошерным MVP — все больше убеждаюсь в его правильности.
Помимо всех уже описанных Никитой плюшек, могу сказать, что этот подход позволяет экономить бабки бизнесу.
Зачем тратить кучу времени (денег) на разработку? Из кучи мелких фич собираются часы, дни, а потом ещё и рефакторинг, поддержка зависимостей, и так далее. Снежный ком времени для того, что на самом деле не нужно.
Кроме того, фидбек от пользователей можно просто структурировать, приоритизировать и давать в работу команде. Это удобнее, быстрее и профитнее, чем выдумывать.