Drupal is a registered trademark of Dries Buytaert
Release: Leaflet 10.4.11 Minor update available for module leaflet (10.4.11). Release: Session Inspector 1.0.8 Minor update available for module session_inspector (1.0.8). Release: Migrate QA 2.0.4 Minor update available for module migrate_qa (2.0.4). Release: CKEditor Description List 3.0.0 Major update available for module ckeditor_descriptionlist (3.0.0). Release: FlowDrop 2.4.0 Minor update available for module flowdrop (2.4.0). Release: JWT Token Refresh 1.0.4 Minor update available for module jwt_token_refresh (1.0.4). Release: ConReg 1.0.0-beta1 First beta version released for module conreg (1.0.0-beta1). Release: AI Image Studio 1.0.0-beta8 New beta version released for module ai_image_studio (1.0.0-beta8). Usage Milestone: Role Theme Switcher Module role_theme_switcher crossed 1,000 active installs. Module Revived: Decoupled Router 2.0.7 Module decoupled_router updated after 11 months of inactivity (2.0.7).

This module offers an alternative login method for Drupal, allowing users to sign in using a time-sensitive, one-time link sent to their email. It adds a "Login with Magic Link" option to the existing login form without requiring any external dependencies.

Magic Login Link provides an alternative authentication method for Drupal via time-sensitive, one-time sign-in links delivered to a user's email address. It adds a "Login with Magic Link" section to the standard user login form.

Magic Login Link Features:

  • Standalone Implementation: The module has zero dependencies and requires no third-party libraries or JavaScript.
  • One-Time Use Tokens: Tokens are stored in the State API and invalidated immediately upon a successful login to prevent replay attacks.
  • UUID-Based Routing: Uses account UUIDs rather than numeric User IDs (UIDs) in the URL structure to mitigate user enumeration.
  • Token Expiration: Links are time-limited (defaulting to 15 minutes) and are automatically ignored by the controller after they expire.
  • Built-in Throttling: Includes a MagicLoginThrottler service to limit the frequency of link requests per email address.
  • Automated Testing: Contains Kernel tests covering token generation, expiration logic, and access control.
  • Core Compatibility: Requires Drupal 10.2+ or Drupal 11.

Post-Installation

Once installed, the module is ready to go with zero configuration required:

Navigate to your site's login page (/user/login).

You will see a new button: "Login with Magic Link".

Users simply enter their email or username and click the button to receive their link.

The email sent uses the site's default mail system. You can customize the email look and feel using standard Drupal mail templates or modules like MailSystem and SwiftMailer/Symfony Mailer.

To enhance the delivery and security of your magic links, we recommend:

Symfony Mailer / Redirect: To ensure your emails are delivered reliably via SMTP or API (SendGrid, Mailgun, etc.).

Flood Control: While this module uses basic throttling, the Flood Control module provides a UI to manage login attempt limits globally.

Similar projects

  • Magic Link: This module provides similar link-based authentication but requires the HTMX module as a dependency. Magic Login Link is a standalone solution with zero external dependencies and no JavaScript requirement.
  • Passwordless: This project replaces the standard Drupal login form entirely with its own interface. Furthermore, it currently lacks a stable release for Drupal 11. Magic Login Link maintains the core login experience by extending the existing form and is built specifically for Drupal 10.2 and 11.
  • Simple Login: Like Passwordless, this module focuses on a themed, standalone login page that replaces the default core login form. Magic Login Link is designed for sites that wish to keep the standard /user/login form intact while offering an additional authentication method.

Activity

Tracked releases
4
Tracked since
Apr 2026
Latest release
4 days ago
Releases (12 mo)
4 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Release date
1.0.4 Stable Aug 19, 2026
1.0.0 Stable Apr 22, 2026
1.0.1 Stable Apr 10, 2026
1.0.x-dev Dev Apr 3, 2026