Skip to main content

Password Recovery

The password recovery system provides users with a secure, self-service way to regain access to their accounts when they forget their passwords. This section covers both UI components and programmatic approaches to password recovery.

Display Password Recovery Form

mimeeqAuth.mountForgotPassword()

warning

This method is deprecated. Please use the unified mount method or the mmq-auth component instead, as described in the "Recommended Alternative" section below.

This method renders a user-friendly password recovery form in a Mimeeq modal. It guides users through the process of requesting a verification code and setting a new password.

Business Value

  • Reduced Support Tickets - Self-service password recovery decreases the volume of account-related support requests
  • Improved User Experience - Streamlined process helps users quickly regain access to their accounts
  • Enhanced Security - Multi-step verification ensures only legitimate users can reset passwords
  • Consistent Brand Experience - Pre-built UI maintains your brand's look and feel during the recovery process

Requirements

This functionality requires an element in the DOM with the data-mimeeq-forgot-password attribute to serve as the mounting point for the recovery form.

Parameters

NameTypeDefaultDescription
onSubmitfunctionCallback triggered when a user successfully initiates recovery
localestringenLanguage code for localizing the interface

Usage Example

<div data-mimeeq-forgot-password></div>
<script>
document.addEventListener('mimeeq-auth-loaded', () => {
mimeeqAuth.mountForgotPassword({
onSubmit: () => {
console.log('Recovery email sent successfully');
// Show confirmation message to user
},
locale: 'es', // Spanish localization
});
});
</script>
// Using the unified mount method (recommended approach)
const mountRoot = await window.mimeeqAuth.mount({
CDNPath: window.mimeeqEmbedEnv.CDNPath,
baseURL: window.mimeeqEmbedEnv.APIPath,
customerId: 'customer123',
node: document.getElementById('auth-container'),
uid: 'forgot-password',
});

mountRoot.render({
embedType: 'FORGOT_PASSWORD',
onLoginSuccess: (user) => {
console.log('Password reset complete, user logged in:', user);
// Redirect to dashboard or show welcome message
},
locale: 'es', // Spanish localization
});

Initiate Password Recovery

mimeeqAuth.authorization.forgotPassword(email)

This method begins the password recovery process by sending a verification code to the user's registered email address. It's the first step in a secure, two-part recovery flow that ensures only users with access to the registered email can reset their passwords.

Business Value

  • Automated Recovery Process - Streamlines account recovery without requiring manual intervention from support staff
  • Email Verification Security - Ensures password resets are only initiated by users with access to the registered email
  • Flexible Integration - Allows custom recovery interfaces while leveraging Mimeeq's secure backend processes
  • Audit Trail - Creates records of recovery attempts for security monitoring

Parameters

NameTypeDefaultDescription
emailstring (required)Email address associated with account

Return Value

Returns a Promise that resolves to:

  • { success: true } when the recovery email is sent successfully
  • An AuthError object if the operation encounters an issue

Usage Example

// Create a custom password recovery request form
document.getElementById('recovery-form').addEventListener('submit', (e) => {
e.preventDefault();

const email = document.getElementById('recovery-email').value;

// Show loading state
document.getElementById('recovery-button').disabled = true;
document.getElementById('recovery-spinner').style.display = 'block';

window.mimeeqAuth.authorization.forgotPassword(email).then((response) => {
// Reset loading state
document.getElementById('recovery-button').disabled = false;
document.getElementById('recovery-spinner').style.display = 'none';

if (response.success) {
// Hide request form and show verification code form
document.getElementById('recovery-request').style.display = 'none';
document.getElementById('recovery-verification').style.display = 'block';

// Store email for the second step
document.getElementById('verification-email').value = email;

// Show success message
document.getElementById('verification-message').textContent =
'A verification code has been sent to your email. Please check your inbox and enter the code below.';
} else {
// Show error message
document.getElementById('recovery-error').textContent =
'Could not send verification code. Please check your email and try again.';
document.getElementById('recovery-error').style.display = 'block';
}
});
});

Complete Password Reset

mimeeqAuth.authorization.forgotPasswordSubmit(email, password, code)

This method completes the password recovery process by verifying the user's code and setting a new password. It's the second step in the recovery flow, after the user has received the verification code sent to their email.

Business Value

  • Self-service Resolution - Enables users to regain account access without waiting for support assistance
  • Verification Security - Requires both email access and the verification code, providing two-factor authentication for resets
  • Password Policy Enforcement - Enforces your organization's password requirements during resets
  • Immediate Account Restoration - Allows users to quickly resume their work after completing the recovery

Parameters

NameTypeDefaultDescription
emailstring (required)Email address associated with the account
passwordstring (required)New password that will replace the previous one
codestring (required)Verification code received via email from the forgotPassword method

Return Value

Returns a Promise that resolves to:

  • { success: true } when the password is successfully reset
  • An AuthError object if the verification fails or another issue occurs

Usage Example

// Handle verification code submission and new password setting
document.getElementById('verification-form').addEventListener('submit', (e) => {
e.preventDefault();

const email = document.getElementById('verification-email').value;
const password = document.getElementById('new-password').value;
const confirmPassword = document.getElementById('confirm-password').value;
const code = document.getElementById('verification-code').value;

// Client-side validation
if (password !== confirmPassword) {
document.getElementById('verification-error').textContent = 'Passwords do not match';
document.getElementById('verification-error').style.display = 'block';
return;
}

// Show loading state
document.getElementById('reset-button').disabled = true;
document.getElementById('verification-spinner').style.display = 'block';

window.mimeeqAuth.authorization.forgotPasswordSubmit(email, password, code).then((response) => {
// Reset loading state
document.getElementById('reset-button').disabled = false;
document.getElementById('verification-spinner').style.display = 'none';

if (response.success) {
// Password reset successful
document.getElementById('recovery-verification').style.display = 'none';
document.getElementById('reset-success').style.display = 'block';

// Automatically redirect to login after a delay
setTimeout(() => {
window.location.href = '/login';
}, 3000);
} else {
// Show error message
document.getElementById('verification-error').textContent =
'Could not reset password. Please check your verification code and try again.';
document.getElementById('verification-error').style.display = 'block';
}
});
});
tip

Consider implementing password strength requirements that match your organization's security policies. You can display these requirements to users while they're creating their new password.