🤵♂️ 个人主页: @计算机魔术师
👨💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。
**该文章收录专栏**
@TOC
pip install allauth
我们假设你已经创建好了项目 allauthDemo
django.contrib.sites
有依赖,所以需要加上该应用,并配置站点**...
# allauth
'django.contrib.sites', # first place
'allauth',
'allauth.account',
'allauth.socialaccount',
]
SITE\_ID = 1
setting
对allauth基本配置# allauth 基本设定
ACCOUNT\_AUTHENTICATION\_METHOD = 'username\_email' # 设置用户名和邮箱登录
ACCOUNT\_EMAIL\_REQUIRED = True # 注册需要填写邮箱
ACCOUNT\_REDIRECT\_URL = '/accounts/profile/' # 登录跳转页面
AUTHENTICATION\_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth\_backends.AuthenticationBackend'
]
常用配置:
ACCOUNT\_AUTHENTICATION\_METHOD (="username" | "email" | "username\_email"):指定要使用的登录方法(用户名、电子邮件地址或两者之一)
ACCOUNT\_EMAIL\_CONFIRMATION\_EXPIRE\_DAYS (=3):邮件确认邮件的截止日期(天数)
ACCOUNT\_EMAIL\_VERIFICATION (="optional"):注册中邮件验证方法:“强制(mandatory)”,“可选(optional)”或“否(none)”之一
ACCOUNT\_EMAIL\_CONFIRMATION\_COOLDOWN (=180):邮件发送后的冷却时间(以秒为单位)
ACCOUNT\_LOGIN\_ATTEMPTS\_LIMIT (=5):登录尝试失败的次数
ACCOUNT\_LOGIN\_ATTEMPTS\_TIMEOUT (=300):从上次失败的登录尝试,用户被禁止尝试登录的持续时间
ACCOUNT\_LOGIN\_ON\_EMAIL\_CONFIRMATION (=False):更改为True,用户一旦确认他们的电子邮件地址,就会自动登录
ACCOUNT\_LOGOUT\_ON\_PASSWORD\_CHANGE (=False):更改或设置密码后是否自动退出
ACCOUNT\_LOGIN\_ON\_PASSWORD\_RESET (=False):更改为True,用户将在重置密码后自动登录
ACCOUNT\_SESSION\_REMEMBER (=None):控制会话的生命周期,可选项还有:False,True
ACCOUNT\_SIGNUP\_EMAIL\_ENTER\_TWICE (=False):用户注册时是否需要输入邮箱两遍
ACCOUNT\_SIGNUP\_PASSWORD\_ENTER\_TWICE (=True): 用户注册时是否需要用户输入两遍密码
ACCOUNT\_USERNAME\_BLACKLIST (=[]):用户不能使用的用户名列表
ACCOUNT\_UNIQUE\_EMAIL (=True): 加强电子邮件地址的唯一性
ACCOUNT\_USERNAME\_MIN\_LENGTH (=1):用户名允许的最小长度的整数
SOCIALACCOUNT\_AUTO\_SIGNUP (=True):使用从社会帐户提供者检索的字段(如用户名、邮件)来绕过注册表单
LOGIN\_REDIRECT\_URL (="/") 设置登录后跳转链接
ACCOUNT\_LOGOUT\_REDIRECT\_URL (="/") 设置退出登录后跳转链接
EMAIL\_HOST: 'smtp.qq.com' # 邮件服务器地址
EMAIL\_POST: 25 #端口号
ENAIL\_HOST\_USER = '\*\*\*' #QQ账号
EMAIL\_HOST\_PASSWORD = '\*\*\*\*\*' # 授权码或密码(qq是授权码)
EMAIL\_USE\_TLS = True # 默认
DEFAULT\_FROM\_EMAIL = EMAIL\_HOST\_USER # 配置默认发信人
如果不想要邮箱验证可添加配置如下
ACCOUNT\_EMAIL\_VERIFICATION (="nonel") # 不发送邮箱
allauth
的url.py
包urlpatterns = [
path('admin/', admin.site.urls),
path('accounts/', include('allauth.urls'))
]
python manage.py makmigrations
python manage.py migrate
python manage.py runserve
ACCOUNT\_EMAIL\_VERIFICATION (="optonal")
为默认值为可选,如果需要验证才能注册可修改为 mandatory
)以下网页都可以正常访问
http://127.0.0.1:8000/accounts/signup/
http://127.0.0.1:8000/accounts/login/
http://127.0.0.1:8000/accounts/logout/
http://127.0.0.1:8000/accounts/password/reset/
signup 注册页面
login 页面
password/reset 页面
在这里插入图片描述email 页面
在这里插入图片描述logout页面
在这里插入图片描述邮箱重置密码
在这里插入图片描述注册绑定邮箱验证
在这里插入图片描述confirm-email 页面
在这里插入图片描述
如果觉得邮箱提示地址 example.com
名字太丑,还可以在admin 中修改 display\_name
/accounts/login/(URL名account_login): 登录
/accounts/signup/ (URL名account_signup): 注册
/accounts/password/reset/(URL名: account_reset_password) :重置密码
/accounts/logout/ (URL名account_logout): 退出登录
/accounts/password/set/ (URL名:account_set_password): 设置密码
/accounts/password/change/ (URL名: account_change_password): 改变密码(需登录)
/accounts/email/(URL名: account_email) 用户可以添加和移除email,并验证
/accounts/social/connections/(URL名:socialaccount_connections): 管理第三方账户
参考文献:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。