Django 2.0.4 微博第三方登录
三方登录逻辑
理解第三方登录的流程:
用户向本地应用商城发起请求,我要用微博进行登录
我们的商城凑一个url让用户跳转到第三方应用的url(微博的登录页面)
用户在该界面点击输入用户名密码之后,点击授权。
微博有个回调url指向我们的应用。
我们的应用就可以获取到用户的基本信息等。
微博接口文档 : https://open.weibo.com/wiki/%E9%A6%96%E9%A1%B5
使用逻辑:
1、首先要去微博开发者页面,完成验证,才可以新建应用
2、建好应用之后就可以拿到应用的App Key, App Secret,需要设置好回调地址
3、要是系统还没开发完成,可以使用测试模式,需要自己手动添加可以登录的微博账号
"""
client_id 必填 string 申请应用时分配的AppKey。
redirect_uri 必填 string 授权回调地址,站外应用需与设置的回调地址一致。
"""
#获取微博登录页面url
def get_auth_url():
weibo_auth_url = "https://api.weibo.com/oauth2/authorize"
redirect_url = "http://127.0.0.1:8001/complete/weibo/"
client_id = "AppKey"
auth_url = weibo_auth_url + "?client_id={client_id}&redirect_uri={re_url}".format(client_id=client_id,
re_url=redirect_url)
print(auth_url)
#获取登录的token,这里是拿到登录的code
#code会拼接在回调地址后面返回http://127.0.0.1:8001/complete/weibo/?code=c53bd7b5af51ec985952a3c03de3b
def get_access_token(code):
access_token_url = "https://api.weibo.com/oauth2/access_token"
import requests
re_dict = requests.post(access_token_url,data={
"client_id": AppKey,
"client_secret": "App Secret",
"grant_type": "authorization_code",
"code": code,
"redirect_uri": "http://127.0.0.1:8001/complete/weibo/",
})
# '{"access_token":"2.00oneFMeMfeS0889036fBNW_B","remind_in":"15799","expires_in":15799,"uid":"5675652","isRealName":"true"}'
pass
#获取带有微博用户json信息的url
def get_user_info(access_token):
user_url = "https://api.weibo.com/2/users/show.json"
uid = ""
get_url = user_url + "?access_token={at}&uid={uid}".format(at=access_token, uid=uid)
print(get_url)
if __name__ == '__main__':
# get_auth_url()
#通过code获取access_token
# get_access_token("c53bd7b5af51ec985952a3c03de3b")
#通过access_token获取用户的信息
get_user_info("2.00oneFMeMfeS0889036fBNW_B")
Django 2.0.4 微博第三方登录的更多相关文章
- OAuth2.0 social_django微博第三方登录
python网站第三方登录,social-auth-app-django模块, social-auth-app-django模块是专门用于Django的第三方登录OAuth2协议模块 目前流行的第三方 ...
- Django rest framework集成微博第三方登录
Django restframework 集成第三方登录(微博.微信.QQ等) 友情链接 python-social-auth-app官方文档 微博开放者平台 QQ开放者平台 准备工作 1.注册微博开 ...
- django项目微博第三方登录
此处咱们用到的是 social_django,所以要把此应用注册到配置文件中, INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.a ...
- yii2微博第三方登录
原作者:杜文建 原博客:http://www.cnblogs.com/dwj97/p/6530568.html yii2微博第三方登录 微博登录是最常用的第三方账号登录之一.由于其网站用户量大,可 ...
- 微博第三方登录时,域名使用错误报错, Laravel \ Socialite \ Two \ InvalidStateException No message
使用微博第三方登录时,报错 Laravel \ Socialite \ Two \ InvalidStateException No message Laravel \Socialite \Two \ ...
- Unity利用Share SDK实现QQ、微信及微博第三方登录及定制内容分享(附代码)
最近因为公司的项目需要添加一些实用性的功能,需要添加第三方登录及分享,采用的是Mob的SDK,可以先到其官网下载对应的SDK 点击这里,为了方便后期进行数据统计和分析,所以可以先添加一个应用,添加成功 ...
- Django项目中使用qq第三方登录。
使用qq登录的前提是已经在qq互联官网创建网站应用并获取到QQ互联中网站应用的APP ID和APP KEY 1,建路由 # qq登录 path('loginQq/',qq.loginQq,name=' ...
- OAuth实现腾讯微博第三方登录
前言 还是得弱弱的写下这个技术的背后,大概是这个样子的,看到OAuth这个单词,我就想到了权限这个词,不知道为什么,又想起了第三方登录这个技术,于是自己脑补了一下,应该这两个东西是有关系的.再就是去动 ...
- 微博第三方登录使用social_django实现显示登陆的用户名
首先修改social_soce源码,将用户信息添加进cookie 将其修改为: response = backend.strategy.redirect(url) payload = jwt ...
随机推荐
- (办公)json报错的解决问题的小经验.
经验:一半,一半的查,看那一段报错,当确定这一步的时候,用最笨的方法,用眼去看,出哪里的错误. 看有没有替换特殊字符的方法,去整理.
- 测者的测试技术手册:自动的自动化框架EvoSuite集成Cobertura得到可视化的代码覆盖报告
EvoSuite是由Sheffield等大学联合开发的一种开源工具,用于自动生成测试用例集,生成的测试用例均符合Junit的标准,可直接在Junit中运行.得到了Google和Yourkit的支持. ...
- java中的sql语句中如果有like怎么写
我先是在SQL server中写了如下语句: 这样是顺利执行的,可是我把这句话复制到Java代码中打出来却报错了, 刚开始我还以为是前端没有传回来值,待我一句一句打印发现,它提示我rs没有next.到 ...
- MongoDB 在系统数据库local上无法创建用户的解决方法
我们知道,MongoDB的Oplog (operations log)记录了用户的最近一段时间的操作(时间长短主要受设置的oplogSize和程序的写入更新量的影响).那么,如果其他部门(例如BI团队 ...
- 20181218 - PostgreSQL Auto Commit Guide(自动提交)
20181218 - PostgreSQL Auto Commit Guide 参考官网简介,https://www.postgresql.org/docs/10/ecpg-sql-set-autoc ...
- Python简介之探观止矣
Python是一门什么样的编程语言编程语言主要分为编译型和解释型,静态语言和动态语言,强类型和弱类型,混合语言等.编译型语言:通过编译器把源代码编译(compile)成机器语言,在经过链接(linke ...
- Codechef Bear and Clique Distances
题目:Bear and Clique Distances 描述:共有N个点,前1—K个点任意两点之间有一条无向边,边的权值为X,再任意给M条边(u,v,w)(不重复),求任意一点到其余各点的最短路. ...
- Python面试笔记二
一.算法 1.归并排序 2.快速排序 3.算法复杂度 4.哈希表数据结构 二.数据库 1.设计一个用户关注系统的数据库表 1.设计一个用户关注系统的数据库表,写三个相关的SQL语句两张表,一张user ...
- Java 集合系列(二)—— ArrayList
ArrayList ArrayList 是通过一个数组来实现的,因此它是在连续的存储位置存放对象的引用,只不过它比 Array 更智能,能够根据集合长度进行自动扩容. 假设让我们来实现一个简单的能够自 ...
- HybridStart发布v1.0测试版
HybridStart是一款多webview模式的混合应用前端开发框架,本来只是作者自用的一套混合应用开发模板,为了进一步提高混合应用开发效率,近期着重在框架高通用性和易用性方面做了较大改进,比如将U ...