В зависимости от сайта, правильным может оказаться или решение «влоб» с двумя формами, или вариант Амазона, или другой вариант — не возьмусь советовать в отрыве от конкретного проекта. Недостаточно посмотреть в Вебвизор один раз
Улучшение без изменения сценария
Слово авторизация в формах входа бесит несказанно. Мало того, что оно заумное, так оно ещё и используется не по делу. Процесс проверки правильности имени и пароля называется не авторизацией, а аутентификацией
Первым делом стоит подумать, как улучшить вариант с двумя формами, раз он уже реализован. Не исключено, что люди путаются из‑за того, что формы плохо подписаны. Например, если слово «Авторизация» используется в интерфейсе, начните с его замены на понятное «Вход с паролем». Посмотрите ещё, как Амазон пишет как бы от лица пользователя «я первый раз» — уверен, вам такие фразы тоже бы помогли.
Слово авторизация в формах входа бесит несказанно. Мало того, что оно заумное, так оно ещё и используется не по делу. Процесс проверки правильности имени и пароля называется не авторизацией, а аутентификацией
Если формы стоят друг под другом, вторую могут не замечать, или она может не помещаться в первый экран пользователя. Я бы поставил их рядом, чтобы подчеркнуть выбор «или‑или». Если это никак невозможно, то я бы предложил размещать регистрацию перед входом, а не после. Старые пользователи скорее найдут нужную форму, чем новые.
Эти изменения хороши тем, что не требуют никаких изменений на бэкенде.
Следующим шагом можно сделать фокус: научить форму регистрации логинить пользователей. Самое тупое, что может быть, это когда я ввожу в форму регистрации свою почту и пароль, а мне говорят: «Ошибка, такой пользователь уже зарегистрирован». Ёлки, в чём ошибка‑то? Мне не следовало регистрироваться? Почему тупая машина не врубается, что это я и есть? Просто залогиньте меня, чтобы я даже не заметил, что ввёл всё не в ту форму.
Альтернативный сценарий
Я терпеть не могу регистрацию и пароли на сайтах и уверен, что в подавляющем большинстве случаев это не нужно. Для входа достаточно электронного адреса. После его ввода на почту отправляется ссылка для входа (при этом если пользователя ещё нет в базе, его акаунт незаметно создаётся). При таком варианте на все случаи жизни нужна лишь одна форма с лишь одним полем.
Кстати, если пользователь перешёл на сайт по ссылке из любого письма, отправленного с сайта, то он должен входить автоматически. Самое тупое, что может быть, это когда я перехожу по ссылке из письма‑уведомления о каком‑нибудь событии, скажем, в соцсети, а соцсеть меня встречает формой входа. Ёлки, зачем ты спрашиваешь, кто я, если ты это прекрасно знаешь? Я же по твоей ссылке захожу, которую ты отправила на мой личный ящик.