Логин в один клик, используя существующий аккаунт от Google, Facebook или Apple, это обмен. Мы меняем знание о себе (“я использую вот этот сервис”) на удобство (“не надо помнить пароль, доступ к сервису без дополнительных шагов регистрации”).
Но для того, чтобы этот обмен был выгоден всем, надо чтобы логин через сторонние сервисы был действительно удобен и быстр. Это не всегда так.
Например вот я пытаюсь попробовать войти в приложение Readwise. Я создаю аккаунт через Apple ID и не получается, так как видимо я это приложение уже пробовал и аккаунт в приложении с этим email уже есть (но я не помню пароля). Я пытаюсь залогиниться через Apple ID и снова неудача — оказывается я создавал аккаунт каким-то другим методом или через Apple мне залогиниться нельзя. Это все нелогично.
Подход к “логину в один клик” должен быть следующим (уже писал про это тут).
- Если пользователь заходит через стороннюю систему, мы не нашли у себя аккаунт, привязанный к этой системе, мы знаем email пользователя из этой сторонней системы) и у нас есть аккаунт с этим email (и email верифицирован), то надо пользователя в этот аккаунт сразу залогинить. Не важно, создавал ли он этот аккаунт через другую систему или через логин/пароль. Не важно, это процесс логина или создания аккаунта.
- Если пользователь заходит через стороннюю систему, мы не нашли у себя аккаунт, привязанный к этой системе, мы знаем email пользователя из этой сторонней системы) и у нас нет аккаунта с этим email, то надо нового пользователя сразу создать и залогинить. Не важно, это процесс логина или создания аккаунта.
Вкратце это можно описать — не важно в рамках какого процесса я тыкнул на кнопку “Залогинь меня через X” и не важно, что было в прошлом — узнали email: залогиньте, не узнали → создайте сразу (и не спрашивайте пароль, сгенерируйте его сами).