You can let your users register with an extra email verification step. Here is what it looks like from the user's perspective:
This is the portal landing page where the user can choose email registration.
After filling the form, the user can request a password that will be sent to his email.
Behind the scenes, when clicking the button an API call will be made to generate the credentials for this user and send an email containing the password.
Then by going back and choosing the login button, he can fill in the form with his email and the supplied password.