There is nothing wrong with using an email address as a user ID. He reports that the person making the registration has access to this email address at that particular time. But I think the link should expire, and if the link expires, release that email address from your database (as it could be someone emailing it).
Since the email is not secure and not very personal (there are many free temporary email sites on the Internet), you cannot use email in situations where trust is important. But for a simple website where you need some kind of accounts, I don't think this is a problem.
To your decision in paragraph 2, in my opinion, if you do not have step 2, you also do not need to worry about steps 1 and 3.
If you do not allow the user to verify the email address, you should not even ask for it. You would not have a clue that this is the real address corresponding to the one trying to make the account.
If you do not have an email address, the user cannot be given a new password, since you do not know where to send it. The email address you entered may belong to someone else who doesnβt even want to have an account on your site.
If you cannot reset your password via email (securely), you should not worry about logging in at all. Go to the site without an account.
It is assumed that you are not using callcenter or support services to verify accounts and, of course, reset the password reset.
source share