diff --git a/13/umbraco-cms/reference/security/two-factor-authentication.md b/13/umbraco-cms/reference/security/two-factor-authentication.md
index cd1fcb3158c..738cf0ae194 100644
--- a/13/umbraco-cms/reference/security/two-factor-authentication.md
+++ b/13/umbraco-cms/reference/security/two-factor-authentication.md
@@ -218,10 +218,10 @@ At this point, the 2FA is active, but no members have set up 2FA yet. The setup
}
```
-10. [Optional] Customize the text fields and buttons to match your websites tone of voice.
-
{% endcode %}
+10. [Optional] Customize the text fields and buttons to match your websites tone of voice.
+
![The QR Code is shown along with a field to enter a value to set up the two factor authentication.](images/2fa-Members-QR-code.png)
### Test the set up for Members
diff --git a/15/umbraco-cms/reference/security/images/2fa-member-backoffice.png b/15/umbraco-cms/reference/security/images/2fa-member-backoffice.png
new file mode 100644
index 00000000000..af270105742
Binary files /dev/null and b/15/umbraco-cms/reference/security/images/2fa-member-backoffice.png differ
diff --git a/15/umbraco-cms/reference/security/images/2fa-members-configuration.png b/15/umbraco-cms/reference/security/images/2fa-members-configuration.png
new file mode 100644
index 00000000000..bcc5c98c1a9
Binary files /dev/null and b/15/umbraco-cms/reference/security/images/2fa-members-configuration.png differ
diff --git a/15/umbraco-cms/reference/security/two-factor-authentication.md b/15/umbraco-cms/reference/security/two-factor-authentication.md
index 2b0291b8a4e..821cc2a523e 100644
--- a/15/umbraco-cms/reference/security/two-factor-authentication.md
+++ b/15/umbraco-cms/reference/security/two-factor-authentication.md
@@ -6,7 +6,12 @@ description: >-
# Two-factor Authentication
-Two-factor authentication (2FA) for Umbraco members is activated by implementing an `ITwoFactorProvider` interface and registering the implementation. The implementation can use third-party packages to archive for example support for authentication apps like Microsoft- or Google Authentication App.
+This article includes guides for implementing two-factor authentication options for both backoffice users and website members:
+
+* [Two-Factor Authentication for Members](#two-factor-authentication-for-members)
+* [Two-Factor Authentication for Users](#two-factor-authentication-for-users)
+
+Two-factor authentication (2FA) for Umbraco Users and Members is activated by implementing an `ITwoFactorProvider` interface and registering the implementation. The implementation can use third-party packages to support authentication apps like the Microsoft- or Google Authentication Apps.
{% hint style="info" %}
If you are using [Umbraco Cloud](https://umbraco.com/products/umbraco-cloud/), you can enable multi-factor authentication in Umbraco ID. For more information, see the [Multi-Factor Authentication](https://docs.umbraco.com/umbraco-cloud/set-up/multi-factor-authentication-on-cloud) article.
@@ -14,19 +19,28 @@ If you are using [Umbraco Cloud](https://umbraco.com/products/umbraco-cloud/), y
## Two-factor authentication for Members
-Since Umbraco does not control how the UI is for member login and profile edit. The UI for 2FA is shipped as part of the Partial View snippets. These can be used as a starting point, before styling the page as you would like.
+The following guide will take you through implementing an option for your website members to enable two-factor authentication.
+
+{% hint style="info" %}
+A setup for members needs to be implemented on your website in order for you to follow this guide. This setup should include:
+
+* Login and logout options.
+* Public access restriction configured on at least 1 content item.
-### Example implementation for Authenticator Apps for Members
+[Learn more about setting up a members section in Umbraco.](../../tutorials/members-registration-and-login.md)
+{% endhint %}
-In the following example, we will use the [GoogleAuthenticator NuGet Package](https://www.nuget.org/packages/GoogleAuthenticator/).
+As an example, the guide will use the [GoogleAuthenticator NuGet Package](https://www.nuget.org/packages/GoogleAuthenticator/). This package works for both Google and Microsoft authenticator apps. It can be used to generate the QR code needed to activate the app for the website.
-Despite the name, this package works for both Google and Microsoft authenticator apps. It can be used to generate the QR code needed to activate the app for the website.
+1. Install the GoogleAuthenticator Nuget Package on your project.
+2. Create a new file in your project: `UmbracoAppAuthenticator.cs`.
+3. Update the file with the following code snippet.
{% code title="UmbracoAppAuthenticator.cs" lineNumbers="true" %}
+
```csharp
-using System;
-using System.Threading.Tasks;
using Google.Authenticator;
+using System.Runtime.Serialization;
using Umbraco.Cms.Core.Security;
using Umbraco.Cms.Core.Services;
@@ -35,17 +49,19 @@ namespace My.Website;
///
/// Model with the required data to setup the authentication app.
///
-public class QrCodeSetupData
+
+[DataContract]
+public class QrCodeSetupData : ISetupTwoFactorModel
{
///
/// The secret unique code for the user and this ITwoFactorProvider.
///
- public string Secret { get; init; }
+ public string? Secret { get; init; }
///
/// The SetupCode from the GoogleAuthenticator code.
///
- public SetupCode SetupCode { get; init; }
+ public SetupCode? SetupCode { get; init; }
}
///
@@ -82,13 +98,14 @@ public class UmbracoAppAuthenticator : ITwoFactorProvider
/// The key of the user or member
/// The secret that ensures only this user can connect to the authenticator app
/// The required data to setup the authenticator app
- public Task