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 ...
随机推荐
- Word Count作业
Word Count作业 一.个人Gitee地址:https://gitee.com/Changyu-Guo 二.项目简介 该项目主要是模拟Linux上面的wc命令,基本要求如下: 命令格式: wc. ...
- C#基础第五天
public struct Person { public string _name; public Gender _sex; public int _age; } public enum Gende ...
- AngularJS学习之旅—AngularJS Table(十一)
1.AngularJS 表格 1. ng-repeat 指令可以完美的显示表格 AngularJS 实例 <!DOCTYPE html> <html> <head> ...
- c/c++ 多线程 std::lock
多线程 std::lock 当要同时操作2个对象时,就需要同时锁定这2个对象,而不是先锁定一个,然后再锁定另一个.同时锁定多个对象的方法:std::lock(对象1.锁,对象2.锁...) 额外说明: ...
- SourceTree下载bitbucket代码
SourceTree安装方法 下载地址:https://www.sourcetreeapp.com/ 列几个安装过程中的注意点: 根URL(Root URL):https://bitbucket.or ...
- HBase源码实战:BufferedMutator
/** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agr ...
- flink Standalone Cluster
Requirements Software Requirements Flink runs on all UNIX-like environments, e.g. Linux, Mac OS X, a ...
- nginx [alert] 12339#0: 1024 worker_connections are not enough
进一步分析报错原因,具体步骤如下: l 查看这两台系统最大的允许文件打开数 [root@nginx01 logs]# cat /proc/sys/fs/file-max 343927 l 通过ul ...
- OpenCV 与 OpenGL 的关系是什么?
OpenCV是 Open Source Computer Vision LibraryOpenGL是 Open Graphics LibraryOpenCV主要是提供图像处理和视频处理的基础算法库,还 ...
- R语言学习——处理数据对象的实用函数
length(object) # 显示对象中元素/成分的数量 dim(boject) # 显示某个对象的维度 str(object) # 显示某个对象的结构 class(object) # 显示某个对 ...