# v0.3.0: Multi-Factor Authentication and Multi-Provider accounts

> The version 0.3.0 adds the ability to enable Multi-Factor Authentication and for users to link their account to multiple providers

*Published: 2022-09-15*
*Canonical: https://makerkit.dev/blog/changelog/update-0.3.0*

---

The 0.3.0 release is the biggest update to Makerkit yet. The main highlights of the release are:

1. Support for **Firebase Multi-Factor Authentication**
2. Support for **linking user accounts to multiple providers** (Facebook, Twitter, Etc.)
3. Redesigned the home page of the website

Let's take a look!

## Support for Firebase Multi-Factor Authentication

Multi-Factor Authentication allows users to add an additional layer of protection when logging in to a website, which is ideal for services that tend to be more sensitive or where privacy is paramount. 

At the time of writing, Firebase Auth supports only SMS MFA.

### Enabling Multi-Factor Authentication

Enabling MFA in your Makerkit application requires two steps:

1. You need to upgrade to Google Cloud Identity Platform from the Firebase Console, as it is needed to support MFA
2. Flipping the variable `auth.enableMultiFactorAuth` to `true` in the configuration file, as it is disabled by default

 ```tsx {% title="configuration.ts" %}
auth: {
  // flip this to "true"
  enableMultiFactorAuth: true,
}
```

Let's see what MFA looks like in Makerkit!

### Verifying Emails as a requirement for MFA

Enabling MFA will require users to have their email verified. In case they haven't, we will show an alert prompting them to verify their email.

{% Video src="/assets/images/posts/send-email-verification-link.mp4" /%}

### Enabling Multi-Factor Authentication with Phone Number

Once the user's email gets verified, we will see a button for setting up MFA.

{% Video src="/assets/images/posts/enabling-multi-factor-authentication.mp4" /%}

### Authentication with SMS verification code

Once enabled MFA, users will be required to use the verification code sent to the phone number they registered in various situations:

- when they sign-in
- when they reauthenticate (eg. when they update their password, or their email, or perform certain actions that require a recent sign-in)

{% Video src="/assets/images/posts/authenticate-with-phone-number-mfa.mp4" /%}

### Disabling Multi-Factor Authentication

Once set up, users have the choice to disable Multi-Factor Authentication. After disabling, they're required to reauthenticate.

{% Video src="/assets/images/posts/disable-mfa.mp4" /%}

## Support for linking user accounts to multiple providers

Assuming your SaaS allows your users to sign in using multiple providers, such as Password, Google Sign-in, Twitter Sign-in, you can allow them to link their account to other accounts, so they have more choices for signing in (or if they simply want to replace how they sign-in, without having to waste support time).

{% Video src="/assets/images/posts/linking-account.mp4" /%}

## Redesigned the home page of the website

The home page of the website has been redesigned and enriched with more sections.

{% Video src="/assets/images/posts/home-page-redesign-0.3.0.mp4" /%}

Well, that was quite a bit of stuff! 😅
