signInWithEmailAndPassword method
Signs in a user with email and password.
email The user's email address.
password The user's password.
Authenticates the user and sets up session.
Returns a Future containing the UserCredential.
Throws FusabaseAuthException if email or password is invalid or authentication fails.
Example:
UserCredential credential = await auth.signInWithEmailAndPassword(
email: 'user@example.com',
password: 'password123'
);
Implementation
Future<UserCredential> signInWithEmailAndPassword({
required String email,
required String password,
}) async {
await _initFuture;
if (email == "" || password == "") {
throw AuthUtils.authErrorHandler(
status: globals.ErrorMap[globals.ErrorCode.INVALID_ARGS] ?? 999,
message: AuthErrorMessageTemplates.format(
AuthErrorMessageTemplates.INVALID_PARAM,
['email or password'],
),
authType: null,
stackTrace: null,
);
}
final credDetails = await this._authHelper.authenticateAndGetDetails(
email: email,
password: password,
);
final User user = User(
user: credDetails["userDetails"],
auth: this,
accessToken: credDetails["accessToken"],
refreshToken: credDetails["refreshToken"],
);
await __setCredTokens({
"accessToken": credDetails["accessToken"],
"refreshToken": credDetails["refreshToken"],
});
await user.getFUSABASEToken();
final AuthCredential creds = EmailAuthProvider.credential(email: email);
final userCred = UserCredential(user: user, credential: creds);
__updateCurrentUser(user);
_syncLoginPersistence(
credDetails["accessToken"].token,
credDetails["refreshToken"],
);
return userCred;
}