Skip to main content

Django authentication via login urls, no passwords required

Project description

version ci coverage license

screenshot from a login form

Django Mail Auth is a lightweight authentication backend for Django, that does not require users to remember passwords.

Django Mail Auth features:

  • custom user model support

  • drop in Django admin support

  • drop in Django User replacement

  • extendable SMS support

This project was originally inspired by Is it time for password-less login? by Ben Brown.

Installation

Run this command to install django-mail-auth:

pip install django-mail-auth

Setup

First add mailauth to you installed apps:

INSTALLED_APPS = [
    # Django's builtin apps…

    'mailauth',
    'mailauth.contrib.admin',  # optional
    'mailauth.contrib.auth',  # optional

    # other apps…
]

mailauth.contrib.admin is optional and will replace the admin’s login with token based authentication too.

mailauth.contrib.auth is optional and provides a new Django User model. The new User model needs to be enabled via the AUTH_USER_MODEL setting:

AUTH_USER_MODEL = 'mailauth.EmailUser'

Next you will need to add the new authentication backend:

    AUTHENTICATION_BACKENDS = (
    # default, but now optional
    # This should be removed if
    'django.contrib.auth.backends.ModelBackend',

    # The new access token based authentication backend
    'mailauth.backends.MailAuthBackend',
)

Django’s ModelBackend is only only needed, if you still want to support password based authentication. If you don’t, simply remove it from the list.

Last but not least, go to your URL root config urls.py and add the following:

from django.urls import path


urlpatterns = [
    path('accounts/', include('mailauth.urls')),
]

That’s it!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-mail-auth-0.1.0.tar.gz (92.0 kB view hashes)

Uploaded Source

Built Distribution

django_mail_auth-0.1.0-py2.py3-none-any.whl (22.5 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page