一个django应用程序,允许您让用户使用他们的电子邮件地址而不是用户名

django-email-login的Python项目详细描述


目标

此应用程序的目标是轻松地转换django的身份验证系统,以允许 使用电子邮件地址而不是用户名登录。这应该在 管理和外部。因此,电子邮件地址必须是唯一的。

用户的用户名将是其电子邮件地址的哈希值。意思是 没有,它将隐藏在管理变更列表视图中。

安装

使用pip install django-email-login安装或从BitBucket hg clone https://bitbucket.org/tino/django-email-login签出并运行python setup.py install

用法

  1. 'email_login'附加到INSTALLED_APPS设置中

  2. 'email_login.auth_backend.EmailBackend'作为第一个插入 AUTHENTICATION_BACKENDS设置元组。

  3. 在根目录urls.py后面添加以下内容:

    # Insert email_login overrides
    from email_login import useradmin, adminsite
    site = adminsite.EmailLoginAdminSite()
    # duplicate the normal admin's registry until ticket #8500 get's fixed
    site._registry = admin.site._registry
    
  4. 而不是使用:

    # Uncomment the next line to enable the admin:
    (r'^admin/', include(admin.site.urls)),
    

    使用:

    # Uncomment the next line to enable the admin:
    (r'^admin/', include(site.urls)),
    

    在根目录中包含管理员urls.py

  5. 要在管理员之外使用登录,请添加:

    (r'^account/', include('email_login.urls')),
    

    给你的urls.py

注意

你的管理帐户需要有一个电子邮件地址,否则你将不会 能够登录!

注意

管理员将在记录的右上角显示用户名 在用户中,如果用户没有名字。如果你想超越它,超越- 使用admin/base.html模板。

与django用户创建一起使用

如果要将此应用程序与django-user-creation一起使用,则 必须为User创建自己的ModelAdmin。您可以通过添加 useradmin.py文件到您的项目,包含以下内容:

from django.contrib import admin
from django.contrib.auth.models import User
from user_creation.forms import EmailAccountCreationForm
from email_login.useradmin import EmailLoginAdmin


class MyUserAdmin(EmailLoginAdmin):
    add_form = EmailAccountCreationForm
    add_fieldsets = (
        (None, {
            'classes': ('wide',),
            'fields': ('email', 'password1', 'password2', 'email_user')}
        ),
    )

admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)

并将import useradmin行添加到urls.py之后 上面描述的覆盖。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Jsonify使用Jackson来定义嵌套对象   在Swing中禁用java图形调试   java Selenium Webdriver拖放在Jenkins上不起作用   java我对一个显示器的问题有一个非常不切实际的询问   java增强的“for”循环导致ArrayIndexOutOfBoundsException   ArrayAdapter适用于Java中的安卓编程,字符串数组   linux在Ubuntu上通过PulseAudio播放Java音频文件时出错   java在Spring应用程序中加载内部(类路径)和外部属性文件   java使用Maven连接到mySQL   Java应用程序的设计   websocket在电报api java中与dc的连接   java XMLStreamException,因为xml中的(&N)   java从控制台输出到JTextArea   Java导出文本文件   java实现parseInt方法   java为什么servlet容器会同步对特定资源/servlet的多个请求的访问?   循环中的Java“while”变量   用Java编程一个国际象棋游戏,gameOver布尔不起作用   java如何获得真正的JPanel大小?