【Django | 使用allauth】

Django使用allauth

安装

pip install django-allauth

注册

安装完成后在settings.py中将allauth相关的app注册到INSTALLED_APP里面去,值得注意的是allauth对于站点设置django.contrib.sites有依赖,所以也需要将它注册进去,同时设置SITE_ID。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # all_auth对site有依赖,需要导入
    'django.contrib.sites',
    # 导入allauth
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
]
# 别忘了注册SITE_ID
SITE_ID = 1

基本设置

这里我不需要使用allauth的第三方登录功能,所以没有把第三方登录的相关包导进来,allauth提供了强大的第三方登录功能,需要的可以查看allauth的官方文档。

再配置登录和权限控制的功能,同样写在settings.py里面。

# 基本设定

# 可以使用用户名或邮箱登录
ACCOUNT_AUTHENTICATION_METHOD = 'username_email'
# 是否需要邮箱
ACCOUNT_EMAIL_REQUIRED = True

# 指定授权
AUTHENTICATION_BACKENDS = (
  'django.contrib.auth.backends.ModelBackend',
  'allauth.account.auth_backends.AuthenticationBackend',
)

url设置

别忘了在urls.py中加上allauth

from django.urls import include

urlpatterns = [
    path('admin/', admin.site.urls),
    # 注册allauth
    path('accounts/', include('allauth.urls')),
]

数据迁移

python manage.py makemigrations
python manage.yy migrate
python manage.py runserver

访问

在浏览器中访问http://127.0.0.1:8000/accounts/signup/可以发现进入了注册界面,尝试注册一个账号,并且尝试登录,可以发现成功url能够成功跳转到http://127.0.0.1:8000/accounts/profile/,但是由于我们还没有定义profile界面,所以会提示Page not found,这是正常的

下面是django_allauth所有内置的URLs,均可以访问的。

/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): 管理第三方账户

转自:https://www.hsinyan.cn/259.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值