django-unique-user-email
项目描述
django-unique-user-email
通过使Django项目的auth.User.email唯一,启用默认用户模型以通过电子邮件登录。
关于原因的简要说明?
Django的“泄漏电池”是其建议创建自定义用户模型。认证是如此核心和标准化,以至于在99.99%的情况下,绝大多数项目根本不需要自定义核心认证模型。这是Django应该提供的电池。
暴露认证模型会产生复杂性税。随着认证模型成为与认证无关的用户相关数据的通用垃圾场,会产生性能税。当用户遇到自定义用户模型时,会产生学习税,以及关于其重要性的(坦白地说,不恰当的)警告。
再次强调,绝大多数项目根本不需要自定义核心认证模型。
我能用我的电子邮件登录吗?
大多数项目,所有人想要的只是通过电子邮件登录。通过使默认的auth.User
模型具有唯一的电子邮件字段和一些其他小东西,这就实现了。
这个包的目标是为您提供在Django的默认User
模型中实现通过电子邮件登录所需的工具。我相信这应该是Django本身的一个选项,因此它也是一个未来讨论的实验。
更长的讨论,即将到来。在此之前,我写了一篇博客文章,详细说明了这一点。
概述
-
从
pip
安装pip install django-unique-user-email
-
添加到
INSTALLED_APPS
INSTALLED_APPS = [ "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", "unique_user_email", ... ]
-
迁移以将唯一约束添加到
User.email
。 -
安装认证后端以允许电子邮件登录
AUTHENTICATION_BACKENDS = [ 'unique_user_email.backend.EmailBackend', 'django.contrib.auth.backends.ModelBackend', ]
-
使用自定义的
AuthenticationForm
通过username
或email
登录。# urls.py from django.contrib.auth.views import LoginView from unique_user_email.forms import AuthenticationForm urlpatterns = [ # Route LoginView before other auth views to match first. # https://docs.django.ac.cn/en/dev/topics/auth/default/#module-django.contrib.auth.views path( "accounts/login/", LoginView.as_view(form_class=AuthenticationForm), name="login", ), ... ]
更完整的教程,即将到来。
测试
-
克隆仓库,创建虚拟环境,并使用
pip install -e .
安装该软件包。 -
您可以使用
just test
运行。这包含了完整的命令
django-admin test --settings=tests.settings --pythonpath=.
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。
源代码分发
django-unique-user-email-23.2.tar.gz (10.0 kB 查看散列)
构建分发
关闭
散列 for django_unique_user_email-23.2-py2.py3-none-any.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | cf613006ef0112f4952eebccc3d8e1df1583abac90550eb20abd02d8834e6219 |
|
MD5 | b97375f00af1b1a0bf279aff0fd8dd45 |
|
BLAKE2b-256 | 3efc7256e1385d2ce944c87424493394e3884d5660d99fa825fdce3bfb543fdb |