The User Profile MFA Menu in Joget provides an interface that allows authenticated users to manage their Multi-Factor Authentication (MFA) settings directly from the Userview. This menu is typically added as a UI menu after installing the User Profile MFA plugin.
Plugins Available in the Bundle:
This plugin bundle is compatible with Joget DX 7 and DX 8.
The user can see whether MFA is currently enabled or disabled for their account. If MFA is not yet configured, the menu provides a way for users to initiate setup. For example, using a QR code for an authenticator app like Google Authenticator or Microsoft Authenticator. If MFA is already enabled, the user may be allowed to disable it, depending on the admin policy.
Figure 1: Expected Outcome of the User Profile MFA Menu
Once the TOTP Authenticator has been enabled, users will be able to enable MFA individually in their custom user profile.
Figure 6: User Profile MFA Properties
Name | Description | |
---|---|---|
Label | Menu label. Mandatory field. | |
Menu ID | Item link slug. Optional field.
| |
Show in popup dialog? | If checked, user will be presented in a popup dialog. | |
Message after saved | Message to show to the user after submission. | |
URL to redirect after saved | URL to redirect after saved. |
Figure 7: User Profile MFA Properties - Performance & Offline Settings
Name | Description |
---|---|
Scope | Caching options are:
|
Duration (s) | Duration in seconds to cache content defaults to 20 seconds if applicable. |
Read more at Performance Improvement with UI Caching. |
Note: PWA Offline support is dependent on the theme used.
Name | Description |
---|---|
Enable cache for offline support | Check this to enable caching for offline support, usually set for use on mobile browsers. |
Read Progressive Web Application (PWA) for more information.
You will need to customize this plugin to better suit your preferences.
If you want to enforce Multi-Factor Authentication (MFA) for all users, please use the following script.
Navigate to UI > Settings > Theme > Advanced > Custom JavaScript, add the following script to the UI settings as shown in the code block and screenshot below:
var currentUserUsername = "#currentUser.username#"; $(document).ready(function () { if ( currentUserUsername && !currentUserTotpSecret && !sessionStorage.getItem('mfaDialogShown') ) { var appId = 'customProfileMfa'; // you will need to change this var uiId = 'v'; // you will need to change this var menuId = 'user_profile_mfa'; // you will need to change this var dialog = new PopupDialog(`#request.baseURL#/web/userview/${appId}/${uiId}/_/${menuId}?embed=true`); dialog.show(); sessionStorage.setItem('mfaDialogShown', 'true'); setTimeout(function() { $("div.ui-widget-overlay.ui-front").attr("id", "specialTosOverlay"); $("div#specialTosOverlay").off("click"); $("button.ui-dialog-titlebar-close").attr("id", "specialTosClose"); $("button#specialTosClose").remove(); }, 500); } }); |