django-passwordless-login
Login to your Django app with a link sent by email.
Adding it to your django project
- Install django-passwordless-login:
$ pip install https://github.com/ImperialCollegeLondon/django-passwordless-login
- Add
"passwordless_login.apps.PasswordlessLoginConfig"
toINSTALLED_APPS
:
INSTALLED_APPS += ["passwordless_login.apps.PasswordlessLoginConfig"]
- Write a login template and specify the path in settings, ie:
LOGIN_TEMPLATE_PATH = "app_name/login.html"
- Include
"passwordless_login/login.html"
in the template where users will login:
{% include "passwordless_login/login.html" %}
- Include functionality of the login view directly
from passwordless_login.views import login
, or include the urls from this app into your app'surlpatterns
:
include("passwordless_login.urls")
Customisable Settings include:
LOGIN_MAX_AGE
- Adatetime.timedelta
of the duration the login link will last (default 30 minutes)LOGIN_ONE_TIME
- If the login link can be used one time only (defaultTrue
)LOGIN_CREATE_NEW_USERS
- Boolean for whether or not this login form should create new users or just log in existing ones.LOGIN_EMAIL_CONTENT
- The content of the email, should include dynamic/format references tolink
(required),minutes
(equivalent toLOGIN_MAX_AGE
),app_name
, andcontact_email
.APP_NAME
- used in the default email contentLOGIN_CONTACT_EMAIL
- used in the default email contentDEFAULT_FROM_EMAIL
- used in the default email content
For development servers, change the EMAIL_BACKEND
setting to allow emails to be printed to the console:
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"