Email Login
Authenticate via Email and Password.

Sign Up with Username

It's also possible to authenticate without a wallet via username and password. This makes use of the built-in Moralis.User class. This class extends Moralis.Object with some extra attributes:
  • username: the username for the user (required)
  • password: the password for the user (required on signup)
  • email: the email address for the user (optional)
Use Moralis.User.signUp(username, password) to create a new user:
1
const user = new Moralis.User();
2
user.set("username", "my name");
3
user.set("password", "my pass");
4
user.set("email", "[email protected]");
5
โ€‹
6
// other fields can be set just like with Moralis.Object
7
user.set("phone", "415-392-0202");
8
try {
9
await user.signUp();
10
// Hooray! Let them use the app now.
11
} catch (error) {
12
// Show the error message somewhere and let the user try again.
13
alert("Error: " + error.code + " " + error.message);
14
}
Copied!
This call will asynchronously create a new user in your Moralis app. Before it does this, it also checks to make sure that both the username and email are unique. Also, it securely hashes the password in the cloud using bcrypt. We never store passwords in plaintext, nor will we ever transmit passwords back to the client in plaintext.
Note that we used the signUp method, not the save method. New Moralis.User's created with a username should always be created using the signUp method. Subsequent updates to a user can be done by calling save.
If a signup isnโ€™t successful, you should read the error object that is returned however, in most cases, this happens because the username or email is already being used by another user. You should clearly communicate this to your users, and ask them to try a different username.
You are free to use an email address as the username and if so, simply ask your users to enter their email into the username property โ€” Moralis.User will work as normal. Weโ€™ll go over how this is handled in the reset password section.

Verifying User Email

You can connect your Moralis app with Sendgrid email service in order to send verification emails. The video below shows you how that works.
Moralis User Email Verification using Sendrid
โ€‹

Log In With Username

Of course, after you allow users to sign up, you need to let them log in to their account in the future. To do this, you can use the class method logIn.
1
const user = await Moralis.User.logIn("myname", "mypass");
2
// Do stuff after successful login.
Copied!
By default, the SDK uses the GET HTTP method. If you would like to override this and use a POST HTTP method instead, you may pass an optional boolean property in the options argument with the key usePost.
1
const user = await Moralis.User.logIn("myname", "mypass", { usePost: true });
2
// Do stuff after successful login.
Copied!

Verifying Emails

Enabling email verification in an applicationโ€™s settings allows the application to reserve part of its experience for users with confirmed email addresses. Email verification adds the emailVerified key to the Moralis.User object. When a Moralis.Userโ€™s email is set or modified, emailVerified is set to false. Moralisthen emails the user a link which will set emailVerified to true.
There are three emailVerified states to consider:
  1. 1.
    true - the user confirmed his or her email address by clicking on the link Moralisemailed them. Moralis.Users can never have a true value when the user account is first created.
  2. 2.
    false - at the time the Moralis.User object was last refreshed, the user had not confirmed his or her email address. If emailVerified is false, consider calling fetch on the Moralis.User.
  3. 3.
    missing- the Moralis.User was created when email verification was off or the Moralis.User does not have an email.
Last modified 1mo ago