Нет ничего плохого в использовании адреса электронной почты в качестве идентификатора пользователя. Он говорит вам, что человек, который выполняет регистрацию, имеет доступ к этому адресу электронной почты в это конкретное время. Но я думаю, что срок действия ссылки истекает, и если срок действия ссылки истекает, вычеркните этот адрес электронной почты из вашей базы данных (так как это может быть кто-то, кто не использует почту).
Поскольку электронная почта не является безопасной и не очень личной (существует множество бесплатных временных сайтов электронной почты в Интернете), вы не можете использовать электронную почту в ситуации, когда важно доверие. Но для простого сайта, где вам нужны какие-то учетные записи, я не думаю, что это проблема.
На ваш взгляд по пункту 2, на мой взгляд, если у вас нет шага 2, вам также не нужно беспокоиться о шагах 1 и 3.
Если вы не позволяете пользователю проверить адрес электронной почты, вы даже не должны спрашивать его. Вы бы не поняли, был ли это настоящий адрес, соответствующий человеку, который пытается создать учетную запись.
Если у вас нет адреса электронной почты, пользователь не может получить новый пароль, так как вы не знаете, куда его отправить. Введенный адрес электронной почты может принадлежать кому-то, кто даже не хочет иметь учетную запись на вашем сайте.
Если вы не можете сбросить пароль по адресу электронной почты (надежно), вам вообще не стоит заходить в систему. Перейти на сайт без учетной записи.
Предполагается, что вы не используете колл-центр или службу поддержки для проверки учетных записей и, конечно, обрабатывает сброс пароля.