📅  最后修改于: 2020-05-09 04:38:55             🧑  作者: Mango
用户注册是Web应用程序最重要的部分之一。 django-registration-redux
和django-alluth
是Django中最著名的注册应用程序。 本教程系列涉及django-allauth
设置,配置和自定义,并为新用户提供指南,这些新用户希望快速开始使用allauth
并在此过程中轻松进行有用的自定义。
本文介绍设置和一些基本配置。 稍后,我们将处理社交登录,扩展类和有效使用DefaultAccountAdapter
添加自定义过程。
djnago-allauth
新手或djnago-allauth
本身的新用户可能会不知所措。 尽管它有充分的文档,但是由于所涉及的开发人员的时间和资源的限制,关于该库的文章和深入的教程并不多。 因此,本系列文章试图解决该问题,并提供了一系列综合指南,以使django-allauth
易于使用并与django社区一起使用。
如何设置?
您可以下载本教程中使用的文件以快速入门。 以下步骤指导您完成设置。
pip install django-allauth
'allauth
, allauth.account'
, allauth.socialaccount
和所有必要的社交登录名添加到INSTALLED_APPS.
您可以在此处查看支持的API的完整列表。 下一篇文章将详细描述社交登录功能。 配置完后,已安装的应用程序应如下所示。
INSTALLED_APPS = [
'django.contrib.admin' ,
'allauth' ,
'allauth.account' ,
'allauth.socialaccount' ,
'allauth.socialaccount.providers.google' ,
'allauth.socialaccount.providers.facebook' ,
'django.contrib.auth' ,
'django.contrib.sites' ,
'django.contrib.contenttypes' ,
'django.contrib.sessions' ,
'django.contrib.messages' ,
'django.contrib.staticfiles' ,
]
在settings.py配置template上下文处理器设置,并在项目urls.py中添加URL模式
TEMPLATES = [
{
'BACKEND' : 'django.template.backends.django.DjangoTemplates' ,
'DIRS' : [
os.path.normpath(os.path.join(BASE_DIR, 'templates' )),
],
'APP_DIRS' : True ,
'OPTIONS' : {
'context_processors' : [
'django.template.context_processors.debug' ,
'django.template.context_processors.request' ,
'django.contrib.auth.context_processors.auth' ,
'django.contrib.messages.context_processors.messages' ,
'django.template.context_processors.request' ,
],
},
},
]
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend' ,
'allauth.account.auth_backends.AuthenticationBackend' ,
)
templates
文件,并将其粘贴到项目目录中的templates
文件夹中。urls.py
中添加allauth URL。 添加allauth网址后,以下内容应如下所示:
from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include< / code>< / pre>
urlpatterns = [
path( 'admin/' , admin.site.urls),
url(r '^accounts/' 'allauth.urls' )),
]
static
文件夹,然后将CSS放在account
文件夹中。Python manage.py makemigrations
和Python manage.py migrate
,migration运行所有必需的迁移,并运行Python manage.py runserver
启动django服务器。localhost:8000/accounts/login
以显示登录页面。组态:
多数django-allauth功能可以通过将内置适配器和变量放在settings.py.
中进行settings.py.
文件。 尽管文档中有大量此类选项并提供了很好的解释,但在下面重点介绍了一些重要选项。
ACCOUNT_EMAIL_CONFIRMATION_EXPIRE_DAYS=7
False
可禁用电子邮件。 例如: ACCOUNT_EMAIL_REQUIRED = True
optional
,但允许用户无需电子邮件即可登录。 您也可以设置为不发送任何验证电子邮件。 (不推荐)例如: ACCOUNT_EMAIL_VERIFICATION = "mandatory"
ACCOUNT_LOGIN_ATTEMPTS_TIMEOUT
设置。 例如: ACCOUNT_LOGIN_ATTEMPTS_LIMIT = 5
ACCOUNT_LOGIN_ATTEMPTS_LIMIT
设置一起使用。 设置的值以秒为单位,以秒为单位,从上次尝试失败登录起。 请不要这样做,这不会阻止管理员登录被强行使用。 例如: ACCOUNT_LOGIN_ATTEMPTS_TIMEOUT = 86400 # 1 day in seconds
/accounts/profile/
URL,然后注销到localhost:8000
或任何localhost
主页。ACCOUNT_LOGOUT_REDIRECT_URL ='/accounts/login/'
LOGIN_REDIRECT_URL = '/accounts/email/'
最后,您的allauth
设置应类似于以下设置。
#django-allauth注册设置
ACCOUNT_EMAIL_CONFIRMATION_EXPIRE_DAYS = 1
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_EMAIL_VERIFICATION = "mandatory"
ACCOUNT_LOGIN_ATTEMPTS_LIMIT = 5
# 1天
ACCOUNT_LOGIN_ATTEMPTS_TIMEOUT = 86400
# 或任何其他页面
ACCOUNT_LOGOUT_REDIRECT_URL = '/accounts/login/'
# 重定向到配置文件页面(如果未配置).
LOGIN_REDIRECT_URL = '/accounts/email/