Django之第三方登陆模块
Django之第三方登陆模块
前期准备
安装 django-allauth
pip install django-allauth
注意,django-allauth 需要在 Django1.10以上版本使用。
settings.py 文件配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | INSTALLED_APPS = ( ... # 需要的 app 'django.contrib.auth', 'django.contrib.sites', 'allauth', 'allauth.account', 'allauth.socialaccount', # 提供你想接入的第三方验证账户,这里以百度为例 'allauth.socialaccount.providers.baidu', ) SITE_ID = 1 LOGIN_REDIRECT_URL = '/' |

INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.sites', 'allauth', 'allauth.account', 'allauth.socialaccount', # 下面是第三方账号相关的,比如我选了weibo和github 'allauth.socialaccount.providers.weibo', 'allauth.socialaccount.providers.github', ] # django-allauth相关设置 AUTHENTICATION_BACKENDS = ( # django admin所使用的用户登录与django-allauth无关 'django.contrib.auth.backends.ModelBackend', # `allauth` specific authentication methods, such as login by e-mail 'allauth.account.auth_backends.AuthenticationBackend', ) # 前面我们app里添加了django.contrib.sites,需要设置 SITE_ID = 1 LOGIN_REDIRECT_URL = '/' ACCOUNT_AUTHENTICATION_METHOD = 'username_email' ACCOUNT_EMAIL_REQUIRED = True # ACCOUNT_AUTHENTICATION_METHOD = 'username_email'的作用是当用户登录时,既可以使用用户名也可以使用email, 其他可选的值是 "username"、"email" ,ACCOUNT_EMAIL_REQUIRED = True要求用户注册时必须填写email,默认False,email是选填的。
1 2 | 除了 allauth.socialaccount.providers.baidu 外,也可以把 baidu 换成 twitter 或 github 等几十种不同的网站验证 官方网站列出了所有支持的网站:https://django-allauth.readthedocs.io/en/latest/providers.html |
urls.py文件配置
1 | re_path(r'^accounts/', include('allauth.urls')), |
同步数据库
./manage.py migrate
开启服务
后面先个坑!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?