Django 实现第三方账号登录网站

简介:   这里我们使用 django-allauth 模块来实现第三方账号验证登录,官方文档如下:https://django-allauth.readthedocs.io/en/latest/ 。 安装 django-allauthpip install django-allauth注意,django-allauth 需要在 Django1.10以上版本使用。

  这里我们使用 django-allauth 模块来实现第三方账号验证登录,官方文档如下:https://django-allauth.readthedocs.io/en/latest/ 。

 

安装 django-allauth

pip install django-allauth

注意,django-allauth 需要在 Django1.10以上版本使用。

 

在建好的项目 settings.py 文件中加入:

INSTALLED_APPS = (
    ...
    # 需要的 app
    'django.contrib.auth',
    'django.contrib.sites',

    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    # 提供你想接入的第三方验证账户,这里以百度为例
    'allauth.socialaccount.providers.baidu',
)

SITE_ID = 1
LOGIN_REDIRECT_URL = '/'

除了 allauth.socialaccount.providers.baidu 外,也可以把 baidu 换成 twitter 或 github 等几十种不同的网站验证,官方网站列出了所有支持的网站(https://django-allauth.readthedocs.io/en/latest/providers.html

不过国内的支持倒不多,有百度,微博,微信等。

 

在 urls.py 中加入一行

re_path(r'^accounts/', include('allauth.urls')),

 

使用

./manage.py migrate

同步数据库。

 

上述工作完成后,进入网站的后台管理,就可以看到下图所示界面,多出了许多和网站验证设置相关的数据表。

 

修改站点内容为你网站的域名,我这里测试用,直接是本地地址

 

 

在 Social Accounts › Social applications 下新增一个 Social applications

 

 

关于 Client id 和 Secret key 内容需要我们到授权的第三方账号网站开发者创建应用后拿到 对应的 id 和 key,这里以百度为例,登录百度开发者中心,创建应用后我们便拿到相应的 API Key(Client id)和 Secret Key 。

 

将 API Key 和 Secret Key 填入 Django 后台的 Social applications 中。

添加授权回调页地址 http://your domain/accounts/baidu/login/callback/ 

 

接下来我们重新打开我们的登录界面,便有了百度的登录链接

界面有点丑,这是 django-allauth 默认的登录界面,我们可以在 project/templates/account 下创建 login.html 便可覆盖 djano-allauth 的默认登录模板,allauth自带的模板放在 allauth/templates/account 下,也可以在这里替换。

 

登录 -> 授权 -> 成功!

 

相关文章
|
6月前
|
缓存 数据挖掘 数据库
104-Django开发在线美食购物网站
美味小厨在线购物网站是基于Python和Django构建的电商平台,提供商品展示、搜索过滤、问题反馈、购物功能、商品详情查看、产品编辑添加、多用户及站点管理、订单管理等服务。采用Django框架实现高效、稳定且可扩展的系统,前后端分离以提升性能,支持数据库优化和缓存技术,注重用户数据安全。未来计划优化用户体验,拓展更多功能,并加强数据分析。
50 1
|
5月前
|
前端开发 Python
七. Django项目之电商购物商城 -- 退出登录
七. Django项目之电商购物商城 -- 退出登录
|
27天前
|
Python
基于python-django的matlab护照识别网站系统
基于python-django的matlab护照识别网站系统
14 0
|
27天前
|
安全 Java Python
基于python-django的Java网站全站漏洞检测系统
基于python-django的Java网站全站漏洞检测系统
30 0
|
3月前
|
数据采集 存储 数据可视化
基于python django的智联招聘数据采集与分析系统,有登录注册,可自主选择采集内容
本文介绍了一个基于Python Django框架的智联招聘数据采集与分析系统,该系统具备登录注册功能,允许用户自主选择采集内容,并通过对数据的分析和可视化展示,帮助企业和招聘者优化招聘策略。
基于python django的智联招聘数据采集与分析系统,有登录注册,可自主选择采集内容
|
3月前
|
数据采集 数据可视化 数据挖掘
基于python django的scrapy去哪儿网数据采集与分析,包括登录注册和可视化大屏,有md5加密
本文介绍了一个基于Python和Django框架,使用Scrapy进行去哪儿网数据采集与分析的项目,包括实现登录注册功能、MD5加密以及通过可视化大屏展示分析结果的综合系统。
基于python django的scrapy去哪儿网数据采集与分析,包括登录注册和可视化大屏,有md5加密
|
4月前
|
存储 NoSQL 中间件
【Django+Vue3 线上教育平台项目实战】登录功能模块之短信登录与钉钉三方登录
在当今的数字化时代,用户认证是任何在线服务安全性的基石。本文将简明扼要地介绍登录注册流程中的核心概念:HTTP无状态性、Session、Token与JWT,并详细阐述两种实用登录方式—— 手机号登录验证(借助容联云/云通讯服务) 与钉钉第三方登录。我们将探讨这些概念的基本原理,并深入解析两种登录方式的实现流程,旨在帮助开发者提升用户认证的安全性与便捷性。
【Django+Vue3 线上教育平台项目实战】登录功能模块之短信登录与钉钉三方登录
|
3月前
|
API Java 数据库连接
从平凡到卓越:Hibernate Criteria API 让你的数据库查询瞬间高大上,彻底告别复杂SQL!
【8月更文挑战第31天】构建复杂查询是数据库应用开发中的常见需求。Hibernate 的 Criteria API 以其强大和灵活的特点,允许开发者以面向对象的方式构建查询逻辑,同时具备 SQL 的表达力。本文将介绍 Criteria API 的基本用法并通过示例展示其实际应用。此 API 通过 API 构建查询条件而非直接编写查询语句,提高了代码的可读性和安全性。无论是简单的条件过滤还是复杂的分页和连接查询,Criteria API 均能胜任,有助于提升开发效率和应用的健壮性。
102 0
|
3月前
|
前端开发 数据处理 开发者
解锁Django模板系统终极奥义!揭秘高效前端渲染秘籍,让你的网站秒变炫酷黑科技!
【8月更文挑战第31天】Django作为Python的高级Web框架,内置的模板系统支持动态HTML渲染。本文通过在线书店案例,详细介绍Django模板系统的设置与高效渲染技巧,包括创建模板文件、编写视图函数及URL配置。通过合理使用过滤器、深度查询和模板继承等技巧,提升前端渲染效率和安全性,优化Web应用开发流程。
23 0
|
3月前
|
前端开发 关系型数据库 MySQL
Python基于Django框架图书管理系统,Bootstrap框架UI,后台EasyUI框架UI,有登录,实现增删改查的富文本效果
本文介绍了一个使用Python Django框架开发的图书管理系统,该系统采用Bootstrap框架进行前端UI设计,EasyUI框架用于后台UI界面,集成了富文本编辑器,并实现了登录及增删改查功能。