三方登录逻辑

理解第三方登录的流程:

用户向本地应用商城发起请求,我要用微博进行登录

我们的商城凑一个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 微博第三方登录的更多相关文章

  1. OAuth2.0 social_django微博第三方登录

    python网站第三方登录,social-auth-app-django模块, social-auth-app-django模块是专门用于Django的第三方登录OAuth2协议模块 目前流行的第三方 ...

  2. Django rest framework集成微博第三方登录

    Django restframework 集成第三方登录(微博.微信.QQ等) 友情链接 python-social-auth-app官方文档 微博开放者平台 QQ开放者平台 准备工作 1.注册微博开 ...

  3. django项目微博第三方登录

    此处咱们用到的是 social_django,所以要把此应用注册到配置文件中, INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.a ...

  4. yii2微博第三方登录

    原作者:杜文建 原博客:http://www.cnblogs.com/dwj97/p/6530568.html yii2微博第三方登录   微博登录是最常用的第三方账号登录之一.由于其网站用户量大,可 ...

  5. 微博第三方登录时,域名使用错误报错, Laravel \ Socialite \ Two \ InvalidStateException No message

    使用微博第三方登录时,报错 Laravel \ Socialite \ Two \ InvalidStateException No message Laravel \Socialite \Two \ ...

  6. Unity利用Share SDK实现QQ、微信及微博第三方登录及定制内容分享(附代码)

    最近因为公司的项目需要添加一些实用性的功能,需要添加第三方登录及分享,采用的是Mob的SDK,可以先到其官网下载对应的SDK 点击这里,为了方便后期进行数据统计和分析,所以可以先添加一个应用,添加成功 ...

  7. Django项目中使用qq第三方登录。

    使用qq登录的前提是已经在qq互联官网创建网站应用并获取到QQ互联中网站应用的APP ID和APP KEY 1,建路由 # qq登录 path('loginQq/',qq.loginQq,name=' ...

  8. OAuth实现腾讯微博第三方登录

    前言 还是得弱弱的写下这个技术的背后,大概是这个样子的,看到OAuth这个单词,我就想到了权限这个词,不知道为什么,又想起了第三方登录这个技术,于是自己脑补了一下,应该这两个东西是有关系的.再就是去动 ...

  9. 微博第三方登录使用social_django实现显示登陆的用户名

    首先修改social_soce源码,将用户信息添加进cookie 将其修改为:  response =  backend.strategy.redirect(url)    payload = jwt ...

随机推荐

  1. Python使用Plotly绘图工具,绘制水平条形图

    水平条形图与绘制柱状图类似,大家可以先看看我之前写的博客,如何绘制柱状图 水平条形图需要在Bar函数中设置orientation= 'h' 其他的参数与柱状图相同.也可以通过设置barmode = ' ...

  2. SQL Server非域(跨域)环境下镜像(Mirror)的搭建步骤及注意事项

    在实际的生产环境下,我们经常需要跨域进行数据备份,而创建Mirror是其中一个方案.但跨域创建Mirror要相对复杂的多,需要借助证书进行搭建. 下面我们将具体的步骤总结如下: 第一部分 创建证书 S ...

  3. python3 dict(字典)

    clear(清空字典内容) stu = { 'num1':'Tom', 'num2':'Lucy', 'num3':'Sam', } print(stu.clear()) #输出:None copy( ...

  4. Filebeat使用内置的mysql模块收集日志存储到ES集群并使用kibana存储

    Filebeat内置了不少的模块,可以直接使用他们对日志进行收集,支持的模块如下: [root@ELK-chaofeng07 logstash]# filebeat modules list Enab ...

  5. MySql 学习之路-聚合函数

    下面是mysql 数据库中经常用到的聚合函数的简单实例 -- 创建学生表 create table student ( id int primary key auto_increment commen ...

  6. CSS---选择器种类 | 层叠性权重

    一.css选择器种类 1.1,ID选择器 1.2,类选择器 1.3,标签选择器 1.4,后代选择器 1.5,子代选择器 1.6,交集选择器 1.7,并集选择器 1.8,通配符选择器 1.9,属性选择器 ...

  7. Docker(2):使用Dockerfile创建支持SSH服务的镜像

    1.创建工作目录 # mkdir sshd_ubuntu # ls 在其中,创建Dockerfile和run.sh文件 # cd sshd_ubuntu/ # touch Dockerfile run ...

  8. 数据库訪问技术之JDBC

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhuojiajin/article/details/32150883     在了解JDBC之前呢, ...

  9. Django-CRM项目学习(三)-stark的页面展示

    开始今日份整理,主要为stark组件的增删改以及model_form组件的使用以及form组件的回顾 1.list_display_link功能 功能:客制化字段进行跳转到指定的页面(编辑页面) 1. ...

  10. 转://11g之后,通过v$wait_chains视图诊断数据库hang和Contention

    1g之前,通常我们数据库hang住了之后,我们会对数据库做hang analyze来进行分析,在11g之后,我们可以通过一个新的视图v$wait_chains来诊断数据库hang和contention ...