Организация регистрации пользователей в системе

При регистрации лучше запрашивать только адрес электронной почты. Это минимум, что необходимо. Пароль система может сгенерировать сама и отправить пользователю на электронную почту. Далее, если пользователь зашел в свой аккаунт, то это означает, что он подтвердил свою почту, потому что он не смог бы войти, если бы не прочитал пароль в полученном письме.

Вместо адреса электронной почты можно использовать номер телефона и соответственно SMS-уведомления вместо электронных писем. Т.е. от пользователя нужно требовать минимум - либо адрес электронной почты, либо номер телефона.

Далее на почту или телефон приходит: пароль/код или ссылка для входа. Если пользователь используя эти данные входит в свой аккаунт, то это автоматически подтверждает его в качестве владельца предоставленных данных.

Если пользователь утратил информацию для восстановления доступа, но помнит пароль, то можно сделать следующее (так например делает Microsoft). Так как он знает пароль, то вы даете ему возможность поменять альтернативную почту/телефон в отложенном режиме. Т.е. он их меняет, но меняются они не сразу, а через 3 дня. Если злоумышленник украдет ваш пароль, то вы в течение 3 дней можете отменить запрос на изменение вашей security info.