django-magiclink
Passwordless authentication for Django with Magic Links
Decision gist · record as of 2026-08-14
Yes, if you are running a Django project on a compatible version and want to add passwordless email authentication with minimal setup. The low install friction, MIT license, and 100% test coverage make it a reasonable choice. However, verify compatibility with your Django version first—the last release was 2023-07-13 and maintenance is dormant, so test thoroughly before deploying to production.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Django and Python 3.6+; you must create custom login and email templates to match your application's design.
- Low install friction with only Django and packaging as runtime dependencies.
- Maintenance is dormant—last release was 2023-07-13, over a year ago, though the repository remains active with no archived status.
License · maintenance · safety
MIT (permissive) — MIT license permits free use, modification, and distribution with minimal restrictions, making it suitable for both open-source and commercial projects.
last release 2023-07-13 (1128 days) · last repo commit 2024-02-10 · 127 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 108,283 downloads/mo, #12,564 on PyPI
Alternatives
Verify before relying
pip install django-magiclink
# In settings.py:
INSTALLED_APPS = [..., 'magiclink']
AUTHENTICATION_BACKENDS = ('magiclink.backends.MagicLinkBackend', ...)
LOGIN_URL = 'magiclink:login'
# In urls.py:
path('auth/', include('magiclink.urls', namespace='magiclink'))
# Then run:
python manage.py migrate magiclink- Whether the package works with Django versions released after 2023-07-13
- Current compatibility with modern Django LTS versions
- Whether dormant status indicates the package is stable or no longer maintained
What it is and what it does
django-magiclink is a Django authentication backend that replaces traditional password-based login with email-delivered magic links. Users request a login link by entering their email, receive a single-use token via email, and clicking the link logs them in automatically. The package handles token generation, validation, expiration, and optional constraints like same-browser or same-IP requirements.
Setup involves adding the app to INSTALLED_APPS, configuring URLs and authentication backends, running migrations, and customizing login templates. The package provides sensible defaults for token security, email styling, and error handling, with configuration options for signup requirements, token reuse policies, and superuser/staff login restrictions.
Use it for
- Replace password-based login in Django apps with email-based authentication to reduce password management burden
- Implement frictionless signup flows where users create accounts by email alone without choosing passwords
- Add passwordless login as an alternative authentication method alongside existing password backends
- Build security-conscious applications where token expiry, IP binding, and browser locking reduce account compromise risk
- Customize login and email templates to match application branding while keeping authentication logic secure
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are running a Django project on a compatible version and want to add passwordless email authentication with minimal setup.
The low install friction, MIT license, and 100% test coverage make it a reasonable choice. However, verify compatibility with your Django version first—the last release was 2023-07-13 and maintenance is dormant, so test thoroughly before deploying to production.
Install
django-magiclink on PyPI
Before you install
Low install friction with only Django and packaging as runtime dependencies. Maintenance is dormant—last release was 2023-07-13, over a year ago, though the repository remains active with no archived status.
Requires Django and Python 3.6+; you must create custom login and email templates to match your application's design.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions, making it suitable for both open-source and commercial projects.
Quickstart
pip install django-magiclink
# In settings.py:
INSTALLED_APPS = [..., 'magiclink']
AUTHENTICATION_BACKENDS = ('magiclink.backends.MagicLinkBackend', ...)
LOGIN_URL = 'magiclink:login'
# In urls.py:
path('auth/', include('magiclink.urls', namespace='magiclink'))
# Then run:
python manage.py migrate magiclink
Verify before relying
- Whether the package works with Django versions released after 2023-07-13
- Current compatibility with modern Django LTS versions
- Whether dormant status indicates the package is stable or no longer maintained
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.6,<4.0 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesDjangopackaging |
| Maintenance | Dormant 1,128 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 108,283 / month, #12,564 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9 |
Evidence: django_magiclink-1.3.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “django passwordless authentication”
- django-magiclinkAdds passwordless email-based authentication to Django applications…
- django-sesamedjango-sesame provides token-based authentication for Django projects…
- django-otp-webauthnAdds WebAuthn Passkey support to Django OTP, enabling passwordless…
Give your agent the search over MCP, or paste the wish link into any chat.
More Dynamic Content packages
MarkupSafe provides a text object that escapes special characters so untrusted strings can be safely embedded in HTML and XML without injection attacks.
Jinja2 is a templating engine that renders dynamic content by combining templates with Python-like syntax and data, supporting template inheritance, macros, autoescaping, and sandboxed execution.
Soupsieve is a CSS selector library designed to work with Beautiful Soup 4 to select, match, and filter HTML and XML elements using modern CSS selectors from CSS level 1 through CSS level 4 specifications.
Install it if you use Beautiful Soup for HTML or XML parsing and want modern CSS selector support.
Werkzeug is a WSGI utility library providing request/response objects, URL routing, an interactive debugger, HTTP utilities, and a development server for building web applications.
Flask is a lightweight WSGI web application framework for building web applications in Python, from simple single-page sites to complex multi-route applications.
Mako compiles Python-embedded templates into Python modules for fast rendering, supporting layout inheritance, custom functions, and direct Python expressions within template syntax.
See also django-sesame · django-authlib · stytch · django-otp-webauthn · django-allauth · django-auth-adfs · dj-rest-auth · soft-webauthn · django-defender · django-impersonate