使用Python3.7+Tornado5.1集成新浪微博三方登录(无需企业资质)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_137
新浪微博:山寨版的twitter,各种粉丝的集散地,天朝人民的最爱,基本上网民都人手一个微博账号,所以使用新浪微博账号进行三方登录来提高用户登录体验就显得尤为重要,本次使用Python3+Tornado5来集成微博登录,记录一下,坑还是不少的。
首先注册微博开放平台:https://open.weibo.com/
选择微链接-》网站接入=>立即接入 新建一个应用
应用创建成功后,会立即跳转审核页面,需要填写一些资质,用来进行审核,其实这些审核字段都不用搭理,应用压根就不需要通过审核
只需要拿到appkey和appsecret即可,然后立即点击高级信息,填写回调网址
需要注意一点,回调授权和取消回调授权地址需要一致
那么新浪微博的登录逻辑很简单: 拼接url => 回调获取code => 利用code换取uid和access_token => 使用access_token获取用户信息
首先第一步,拼接url,这里我们使用Tornado写控制器
#新浪微博登录地址组合返回(第一步)
class SinaFirstHandler(BaseHandler):
def get(self,*args,**kwargs):
#微博接口地址
weibo_auth_url = "https://api.weibo.com/oauth2/authorize"
#回调网址
redirect_url = "http://127.0.0.1:8000/md_admin/weibo"
#应用id
client_id = "2636039333"
#组合url
auth_url = weibo_auth_url + "?client_id={client_id}&redirect_uri={re_url}".format(client_id=client_id,
re_url=redirect_url)
self.write(auth_url)
第二步,回调获取code,并且换取access_token和uid
#新浪微博回调地址(第二步)
class SinaBackHandler(BaseHandler):
def get(self,*args,**kwargs):
#获取回调的code
code = self.get_argument('code')
#微博认证地址
access_token_url = "https://api.weibo.com/oauth2/access_token"
#参数 向新浪接口发送请求
re_dict = requests.post(access_token_url,data={
"client_id": '2636039333',
"client_secret": "4e2fbdb39432c31dc5c2f90be3afa5ce",
"grant_type": "authorization_code",
"code": code,
"redirect_uri": "http://127.0.0.1:8000/md_admin/weibo",
})
re_dict = re_dict.text
re_dict = eval(re_dict)
print(re_dict.get('uid'))
self.write(re_dict)
接下来的情况就有点操蛋了,因为新浪规定应用如果不通过审核,那么新浪有些接口无权限请求的,可以说你手里只有access_token和uid,却换不到别的东西,怎么办呢,没有人会闲的没事为了测试接口就去弄个营业执照,但是有一个曲线救国的方法,就是在测试信息页面来添加测试账号,添加好测试账号之后,就可以请求相应的接口
最后,利用手里的access_token和uid来获取当前用户的用户名
result = requests.get('https://api.weibo.com/2/users/show.json',params={'access_token':res['access_token'],'uid':res['uid']})
result = json.loads(result.text)
print(result['name'])
可以看到接口请求成功
搞定收工。
原文转载自「刘悦的技术博客」 https://v3u.cn/a_id_137
使用Python3.7+Tornado5.1集成新浪微博三方登录(无需企业资质)的更多相关文章
- tp5集成淘宝,微信,网易,新浪等第三方登录
tp5集成淘宝,微信,网易,新浪等第三方登录 一.总结 一句话总结: 接口 链接 实现的话就是这些平台给的一个接口(链接),你通过这些接口登录进去之后,它会给你返回用户名,头像之类的信息,我们的网站存 ...
- 微信、QQ、新浪微博等第三方登录,你想知道的都在这了(上) 微信、QQ、新浪微博等第三方登录,你想知道的都在这了(下)
微信.QQ.新浪微博等第三方登录,你想知道的都在这了(上):https://www.jianshu.com/p/133d84042483 微信.QQ.新浪微博等第三方登录,你想知道的都在这了(下):h ...
- 利用本地HTTPS模拟环境为FastAPI框架集成FaceBook社交三方登录
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_174 提起社交,就不得不说马克·扎克伯格(Mark Zuckerberg)一手创办的社交网络(FaceBook).进入2020年, ...
- SpringCloud微服务实战——搭建企业级开发框架(四十一):扩展JustAuth+SpringSecurity+Vue实现多租户系统微信扫码、钉钉扫码等第三方登录
前面我们详细介绍了SSO.OAuth2的定义和实现原理,也举例说明了如何在微服务框架中使用spring-security-oauth2实现单点登录授权服务器和单点登录客户端.目前很多平台都提供了单 ...
- 对QQ、微信等第三方登录的几个思考
转自:http://www.jianshu.com/p/7f282dfc16fc 今天聊聊注册.登录环节中很常见的第三方登录,如QQ.微信.支付宝.新浪微博等.虽然这些产品的开放平台都提供了标准的接入 ...
- ASP.NET MVC中三方登录: 微软、谷歌、Office365
创建一个MVC的工程,在Startup.Auth.cs文件中,我们能看到这样的一些代码: 这其实是微软已经帮我们实现好的三方登录的接口,我们只需要创建相应的开发者账号,并在其中配置好跟我们应用程序相关 ...
- iOS无处不在详解iOS集成第三方登录(SSO授权登录无需密码)
链接地址:http://www.it165.net/pro/html/201408/18884.html 1.前言 不多说,第三登录无处不在!必备技能,今天以新浪微博为例. 这是上次写的iOS第三方社 ...
- AppDelegate减负之常用三方封装 - 友盟分享 / 三方登录篇
之前完成了 AppDelegate减负之常用三方封装 - 友盟推送篇: http://www.cnblogs.com/zhouxihi/p/7113511.html 今天接着来完成 - 友盟分享和三方 ...
- 带三方登录(qq,微信,微博)
实现QQ.微信.新浪微博和百度第三方登录(Android Studio) 前言: 对于大多数的APP都有第三方登录这个功能,自己也做过几次,最近又有一个新项目用到了第三方登录,所以特意总结了一下关于 ...
随机推荐
- 理解 Angular 服务
理解 Angular 服务 本文写于 2021 年 3 月 29 日 理解 Angular 服务 什么是服务 服务写法 原理简述 提供服务 1. 在服务中注册 2. 在 module 中注册 3. 在 ...
- MATLAB调用NASTRAN的连续计算解决方案
使用MATLAB调用NASTRAN提交bdf文件计算的方法笔者试过几种,分别做一下介绍 MATLAB直接调用操作系统命令 该方法对单次计算可能方便些,定义一个字符串,并使用eval命令调用,具体格式为 ...
- 可靠的分布式KV存储产品-ETCD-初见
目录 Paxos Raft(Understandable Distributed Consensus) 名词介绍 Leader Election Log Replication 请求完整流程 etcd ...
- 一文掌握软件安全必备技术 SAST
上一篇文章中,我们讨论了软件供应链的概念并了解到近年来软件供应链安全事件层出不穷.为了保障软件供应链安全,我们需要了解网络安全领域中的一些主要技术.本篇文章将介绍其中一个重要技术--SAST. 当开发 ...
- 5G的发布加快了智慧城市/三维物联网等行业的发展
最近很多人发现自己的5G手机突然没了5G信号,难道是美国搞的鬼? 不不不,这其实是因为5G的NSA基站被撤站了,官方已经做了部署,要大力推进SA网络建设.所以之前支持NSA模式的5G手机,现在都成了4 ...
- 关于Vue移动端框架(Muse-UI)的使用(说明书,针对不愿看文档的童鞋)
一.安装 1.npm安装 npm i muse-ui -S 或者 CDN安装 <link rel="stylesheet" href="https://unpkg. ...
- HDLBits->Circuits->Multiplexers->Mux256to1v
Verilog切片语法 题目要求如下 Create a 4-bit wide, 256-to-1 multiplexer. The 256 4-bit inputs are all packed in ...
- SpringBoot之缓存
一.准备工作 首先整合使用Spring整合MyBatis. 可参阅:SpringBoot整合MyBatis SpringBoot整合MyBatis完后后,我们需要在pom.xml中添加缓存相关的依赖. ...
- UiPath直播课程
UiPath实现拉勾招聘信息的抓取和汇总 https://www.bilibili.com/video/av81859882 UiPath企业框架Reframework的介绍和使用 https://w ...
- 从一道算法题实现一个文本diff小工具
众所周知,很多社区都是有内容审核机制的,除了第一次发布,后续的修改也需要审核,最粗暴的方式当然是从头再看一遍,但是编辑肯定想弄死你,显然这样效率比较低,比如就改了一个错别字,再看几遍可能也看不出来,所 ...