第四百零四节,python网站第三方登录,social-auth-app-django模块,

news/2024/5/17 12:59:10/文章来源:https://blog.csdn.net/weixin_34055910/article/details/85947321

第四百零四节,python网站第三方登录,social-auth-app-django模块,

 

social-auth-app-django模块是专门用于Django的第三方登录OAuth2协议模块

目前流行的第三方登录都采用了OAuth2协议

安装

pip install -i https://pypi.douban.com/simple social-auth-app-django

依赖关系

PyJWT-1.5.3 
certifi-2017.7.27.1 
chardet-3.0.4 
defusedxml-0.5.0 
idna-2.6 
oauthlib-2.0.4 
python3-openid-3.1.0 
requests-2.18.4 
requests-oauthlib-0.8.0 
six-1.11.0 
social-auth-app-django-1.2.0 
social-auth-core-1.4.0 
urllib3-1.22

 使用文档 http://coding.imooc.com/lesson/131.html#mid=7393

 

使用配置

1.将social_django添加到app配置,settings.py

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app1','social_django',
]
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql',                           # 配置数据库引擎名称'NAME': 'jxiou',                                                # 数据库名称'USER': 'test_user',                                            # 数据库用户名'PASSWORD': 'test_user',                                        # 数据库密码'HOST': '127.0.0.1',                                            # 数据库链接地址,为服务器ip'PORT': '3306',                                                 # 数据库端口
    }
}

 

 

2,输入命令migrate来生成第三方登录需要的表

 

3.配置需要的第三方登录模块,settings.py

第三方登录模块放在social_core插件下的backends目录,里面有很多第三方登录模块,比如,微信,微博,QQ等

# 设置要使用的第三方登录
AUTHENTICATION_BACKENDS = ('social_core.backends.weixin.WeixinOAuth2',         # 使用微信登录'social_core.backends.qq.QQOAuth2',                 # 使用QQ登录'django.contrib.auth.backends.ModelBackend',        # 指定django的ModelBackend类
)

 

4.配置第三方登录路由url

from django.conf.urls import url, include                   # 导入django自在的include逻辑
from django.contrib import admin
from app1.views import alipaviewurlpatterns = [url(r'^admin/', admin.site.urls),# 支付宝返回urlurl(r'^alipa/', alipaview, name='alipa'),# 第三方登录url('', include('social_django.urls', namespace='social'))
]

 

5.配置 TEMPLATES,settings.py

配置这里,当用户登录的时候,如果用户不存在,会自动在用户表创建用户,并且关联用户信息

TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [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','social_django.context_processors.backends','social_django.context_processors.login_redirect',],},},
]

 

使用第三方配置

# 设置要使用的第三方登录
AUTHENTICATION_BACKENDS = ('social_core.backends.weibo.WeiboOAuth2',           # 使用微博登录'social_core.backends.weixin.WeixinOAuth2',         # 使用微信登录'social_core.backends.qq.QQOAuth2',                 # 使用QQ登录'django.contrib.auth.backends.ModelBackend',        # 指定django的ModelBackend类
)# 配置微博开放平台授权
# SOCIAL_AUTH_要使用登录模块的名称大小_KEY,其他如QQ相同
SOCIAL_AUTH_WEIBO_KEY = '1359594035'
SOCIAL_AUTH_WEIBO_SECRET = '7d33714722f4e5572c116ce2b2433a99'# 登录成功后跳转页面
SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/index/'

 

配置后,启动程序,根据url来构造请求地址和,回调地址

urlpatterns = [# authentication / association# <backend>是一个变量接收要使用登录模块的名称小写# 请求URLurl(r'^login/(?P<backend>[^/]+){0}$'.format(extra), views.auth,name='begin'),# 回调URLurl(r'^complete/(?P<backend>[^/]+){0}$'.format(extra), views.complete,name='complete'),# disconnectionurl(r'^disconnect/(?P<backend>[^/]+){0}$'.format(extra), views.disconnect,name='disconnect'),url(r'^disconnect/(?P<backend>[^/]+)/(?P<association_id>\d+){0}$'.format(extra), views.disconnect, name='disconnect_individual'),
]

请求URL构造为:http://域名或者ip/login/使用模块名称小写/

如:http://127.0.0.1:8000/login/weibo/

 

回调URL构造为:http://域名或者ip/complete/使用模块名称小写/

如:http://127.0.0.1:8000/complete/weibo/

回调URL一般需要设置到开放平台的后台

 

前台页面可以调用,请求url

<a href="{% url "social:begin" "weibo" %}">微博登录</a>

 

social_auth_usersocialauth 数据表里就是管理用户表的信息

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_773336.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MVC与单元测试实践之健身网站(五)-系统信息、前台入口

Fit项目停滞了一段时间&#xff0c;现在继续吧。上一篇完成了动作文本和配图的添加、编辑等内容。接下来要完成的是后台的最后一个模块&#xff1a;系统信息&#xff1b;以及前台的入口&#xff1a;关于注册、登录、修改密码等。 一 系统信息 a) 用户信息 用户信息界面可以查看…

在线学编程!十大优秀IT在线教育网站推荐

在这个信息技术高速发展的时代&#xff0c;我们似乎已离不开网络。而且随着互联网技术的发展&#xff0c;许多传统的领域已经发生了很大的变化&#xff0c;比如教育。除了自己啃书本或是在教室里听老师讲课&#xff0c;我们现在可以借助互联网接受在线(视频)教育。这使得我们可…

网站故障排除一例

今天上午9点的时候收到报警邮件&#xff0c;提示网站502bad gateway, 输入网站url后果然无法打开&#xff1a; 登录服务器查看nginx进程正常&#xff1a; 查看fastcGI进程已经停止运行了&#xff1a; 问题找到后就该查找是什么原因产生的问题&#xff0c;先把fastcGI进程启动后…

CSS改网站背景色

background:颜色值; 把这个写在你要改变的DIV块 对应的css里面就可以了 本文转自 yeybz 51CTO博客&#xff0c;原文链接:http://blog.51cto.com/hmlwl/1398877

简单高效防注入攻击的动态多参数、动态SQL语句拼接方法,提高网站的安全性...

并非人人是高手&#xff0c;并非人人是神仙&#xff0c;我也有不懂的地方&#xff0c;我也有不注意的技术问题&#xff0c;多交流多学习就是最好的提高方法 其实对与初学者来说&#xff0c;进行的动态的查询语句拼接也不是那么好做的事情&#xff0c;就是做出来了&#xff0c;也…

好的学习网站及博客

2019独角兽企业重金招聘Python工程师标准>>> 慕课网&#xff1a;http://www.imooc.com/course/list ActiveMq:http://boy00fly.iteye.com/blog/1103586 转载于:https://my.oschina.net/luyaolove/blog/598490

zabbix 监控web网站性能

一直在纠结用什么实例来给大家演示呢&#xff1f;想来想去还是官方的好&#xff0c;那我们怎么用zabbix监控web性能和可用性呢&#xff1f;我们这边分为几个步骤&#xff1a;打开网站、登陆、登陆验证、退出&#xff0c;一共4个小step&#xff0c;看实例。 检测流程 1. 打开网站…

paper 28 :一些常见常用数据库的下载网站集锦

做图像处理模式识别的童鞋怎么可以没有数据库呢&#xff1f; 但是&#xff0c;如果自己做一个数据库&#xff0c;费时费力费钱先不说&#xff0c;关键是建立的数据库的公信力一般不会高&#xff0c;做出的算法也别人也不好比较&#xff0c;所以呢&#xff0c;下载比较权威的公共…

学英语好网站

转载于:https://www.cnblogs.com/DeeLMind/p/7627276.html

初学Node.js之Markdown建站

平时做项目中的Web应用都是用Asp.Net或者Java&#xff0c;但有时候需要快速做一些小Web的时候&#xff0c;感觉用Asp.Net或者Java都有点重。一开始想学学PHP&#xff0c;但实在不喜欢PHP的语法&#xff0c;所只用PHP写了两个简单的Demo之后就写不下去了。了解到最近Node.js有点…

自己搭建CA颁发证书做https加密网站

如果网站是针对内网的访问的&#xff0c;自己搭建CA服务器颁发证书就可以&#xff0c;如果是针对互联网来访问的&#xff0c;还是买ssl证书比较好&#xff0c;今天就来介绍一下自己搭建CA服务器颁发证书做加密网站。 192.168.10.187 CA服务器 192.168.10.190 web服务器 &#x…

完整利用Rsync实现服务器/网站数据增量同步备份

我们在选择VPS、服务器架设项目之后&#xff0c;所有的项目、网站数据都需要我们自行备份和维护&#xff0c;即便有些服务商有提供管理型服务器&#xff0c;但是数据自行备份和管理才是较为靠谱的。无论是网站&#xff0c;还是其他项目&#xff0c;数据的备份方式有很多种&…

MVC与单元测试实践之健身网站(一)-项目概述

2019独角兽企业重金招聘Python工程师标准>>> 前不久刚刚通过租房网站的开发学习了MVC&#xff0c;并随后学习了单元测试相关的基础&#xff0c;现在开始健身网站的开发&#xff0c;该项目将结合MVC与单元测试&#xff0c;在开发实践过程中&#xff0c;趁热打铁&…

Java爬虫_资源网站爬取实战

对 http://bestcbooks.com/ 这个网站的书籍进行爬取 (爬取资源分享在结尾) 下面是通过一个URL获得其对应网页源码的方法 传入一个 url 返回其源码 (获得源码后&#xff0c;对源码进行解析&#xff0c;获得页面中其他的书籍地址和当前页面的书籍的百度网盘的链接,因为这个网站…

Nginx配置SSL证书部署HTTPS网站

一、什么是 SSL 证书&#xff0c;什么是 HTTPSSSL 证书是一种数字证书&#xff0c;它使用 Secure Socket Layer 协议在浏览器和 Web 服务器之间建立一条安全通道&#xff0c;从而实现&#xff1a;1、数据信息在客户端和服务器之间的加密传输&#xff0c;保证双方传递信息的安全…

【好书试读】速度与激情:以网站性能提升用户体验

开始试读&#xff1a;https://yqfile.alicdn.com/1d4578a32e3f5120cd35a1e53e2000b5.pdf天猫购买链接&#xff1a;速度与激情&#xff1a;以网站性能提升用户体验 Web设计师在权衡外观设计与网站性能时总是要作出艰难的选择。良好的内容、布局、图片和交互对于吸引用户来说至关…

网站用户身份识别俩大招之django实现cookie

导航&#xff1a; 原理介绍 代码实现 过程分析 追踪Cookie 原理介绍 众所周知&#xff0c;http协议是无状态的协议&#xff0c;简单理解是用户的前一步操作和后一步操作之间没有关系&#xff0c;互相不知道&#xff0c;不干扰。而在很多场景下&#xff0c;浏览网页时&#xff0…

Java网站开发必看书籍

转发&#xff1a;https://blog.csdn.net/tianya846/article/details/50683248 1&#xff1a;《java并发编程从入门到精通》 推荐理由&#xff1a; 从入门讲到精通的&#xff0c;网络安全&#xff0c;网络并发的好书。《Java并发编程从入门到精通》作者结合自己10多年Java并发编…

记在VMware虚拟机中对网站进行性能压力测试的经历

由于本次测试&#xff0c;仅仅是对静态网站首页进行的测试&#xff0c;所以没有涉及到MySQL数据库的性能监测 服务器基本配置 webbench测试工具 Linux上一款优秀的web性能压力测试工具。webbench最多可以模拟3万个并发连接去测试网站的负载能力。 下面开始测试 第一次并发测试 …

基于keepalived实现多种模式的高可用集群网站架构

一、 实现主从服务器高可用技术。 大概网络拓扑图&#xff1a; 前提准备条件&#xff1a; 准备四台机器&#xff0c;一台为keepalived的master&#xff0c;一台为keepalived的backup&#xff0c;一台为rs1&#xff0c;一台为rs2&#xff0c;同时都关闭防火墙和selinux。 ①安装…