Drupal is a registered trademark of Dries Buytaert
Emulsify Tools 2.1.2 Minor update available for module emulsify_tools (2.1.2). AI (Artificial Intelligence) 1.5.0-alpha2 New alpha version released for module ai (1.5.0-alpha2). AI (Artificial Intelligence) 1.5.0-alpha1 First alpha version released for module ai (1.5.0-alpha1). Easy Encryption 1.0.4 Minor update available for module easy_encryption (1.0.4). Extra Paragraph Types (EPT): Micromodal 2.0.1 Minor update available for module ept_micromodal (2.0.1). Extra Paragraph Types (EPT): Timeline 2.0.1 Minor update available for module ept_timeline (2.0.1). Emulsify 7.1.1 Minor update available for theme emulsify (7.1.1). Varbase Project 11.0.5 Minor update available for module varbase_project (11.0.5). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs. Extra Paragraph Types (EPT): Images 2.0.0 Module ept_images updated after 10 months of inactivity (2.0.0).

Two-factor authentication (TOTP) for Drupal, with QR code enrollment, one-time
backup codes, delegated admin management, and a themeable setup page.

Features

  • TOTP enrollment with an inline SVG QR code
    (no third-party API calls) and a manual-entry fallback
    (issuer, account name, secret key).
  • One-time backup codes, issued once at enrollment and
    shown exactly once; only their hash is stored.
  • Configurable OTP parameters: code length (6–8 digits),
    validity period, and clock-drift tolerance window.
  • Self-service reset via a single-use, time-limited
    emailed link for users who have lost access to their authenticator.
  • Enforced enrollment: optionally redirect any
    authenticated user who has not configured 2FA yet to the setup page
    before they can use the rest of the site.
  • Delegated admin management: a dedicated
    manage user 2fa permission lets support staff view every
    user's 2FA status and reset, enable, or disable it, without granting
    administer site configuration or
    administer users.
  • REST/JSON login support:
    /user/login?_format=json (and other serialization formats)
    requires a valid mfa_token in the request body once 2FA is
    enabled for the account, without duplicating any of core's
    credential or flood-control logic.
  • Encrypted secrets at rest using AES-256-GCM, keyed by
    a value from settings.php (recommended) or an
    auto-generated key stored in State.
  • Themeable setup page: an opt-out card-style CSS design
    that can be turned off in favor of plain Drupal form styling, or
    overridden entirely via the
    auth_login_plus_setup_page theme hook.
  • Drush command to reset a user's enrollment from the
    command line.

Configuration

  1. Enable the module.
  2. Go to

    Administration » Configuration » People »
    Authenticator Login Plus settings

    (/admin/config/people/auth_login_plus/settings)
    and review the following settings:
    • Enable two-factor authentication
      the global kill switch. When disabled, no OTP challenge is issued
      anywhere on the site.
    • Use the custom setup page design
      toggles the bundled card-style CSS on the setup, login-challenge,
      and status pages. The copy-to-clipboard button continues to work
      either way.
    • Issuer name
      the name shown in the authenticator app. If left blank, the site
      name is used by default.
    • One-time code parameters
      configure the code length, validity period, and clock-drift
      tolerance.
    • User self-service
      configure whether users can enable or disable 2FA themselves,
      whether backup codes are issued, how many are generated, whether
      the emailed self-service reset link is available, and where users
      are redirected after a successful challenge.
    • Enforcement
      force users who have not configured 2FA to the setup page and
      configure the message shown when this happens.
  3. Set a permanent
    encryption key
    in settings.php before going to production.
  4. Grant the manage user 2fa permission to the role that should
    be able to support end users, such as a helpdesk or support role.
    See Permissions.

Drush commands

drush auth-login-plus:reset <uid>;

Resets the given user's enrollment, including their secret and backup codes,
from the command line. This has the same effect as the admin overview's
“Reset” action.

Activity

Total releases
2
First release
Jul 2026
Latest release
18 hours ago
Releases (12 mo)
2 ▲ from 0
Maintenance
Active

Releases

Version Type Release date
1.0.0-alpha1 Pre-release Jul 20, 2026
1.x-dev Dev Jul 20, 2026