通过登录url进行django身份验证,不需要密码
django-mail-auth的Python项目详细描述
django mail auth是django的轻量级身份验证后端, 这不需要用户记住密码。
django邮件验证功能:
- 自定义用户模型支持
- 加入Django管理支持
- Django用户替换
- 可扩展的短信支持
这个项目的灵感来自:
- Is it time for password-less login?按Ben Brown
- LOGIN WITHOUT PASSWORD MOST SECURE | WAIT.. WHAT?按Joris Snoek
- django-nopassword按Rolf Erik Lekang
安装
运行此命令安装django-mail-auth:
pip install django-mail-auth
设置
首先将mailauth添加到已安装的应用程序:
INSTALLED_APPS = [ # Django's builtin apps… 'mailauth', 'mailauth.contrib.admin', # optional 'mailauth.contrib.user', # optional # other apps… ]
mailauth.contrib.admin是可选的,将替换管理员的登录名 使用基于令牌的身份验证。
mailauth.contrib.user是可选的,它提供了一个新的django用户模型。 需要通过AUTH_USER_MODEL设置启用新的用户模型:
AUTH_USER_MODEL = 'mailauth_user.EmailUser'
接下来,您需要添加新的身份验证后端:
AUTHENTICATION_BACKENDS = ( # default, but now optional # This should be removed if you use mailauth.contrib.user or any other # custom user model that does not have a username/password 'django.contrib.auth.backends.ModelBackend', # The new access token based authentication backend 'mailauth.backends.MailAuthBackend', )
如果您仍然想支持Django的 基于密码的身份验证。如果你没有,就从列表中删除它。
最后但并非最不重要的是,转到url root configurls.py并添加以下内容:
from django.urls import path urlpatterns = [ path('accounts/', include('mailauth.urls')), ]
就这样!
注意
别忘了设置你的电子邮件后端!