zoukankan      html  css  js  c++  java
  • python --第三方登录--微博

    理解第三方登录的流程:

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

    我们的商城凑一个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 = "5675652"

        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")

  • 相关阅读:
    设计模式系列之中介者模式(Mediator Pattern)——协调多个对象之间的交互
    设计模式系列之外观模式(Facade Pattern)——提供统一的入口
    设计模式系列之装饰模式(Decorator Pattern)——扩展系统功能
    设计模式系列之组合模式(Composite Pattern)——树形结构的处理
    设计模式系列之工厂模式三兄弟(Factory Pattern)
    设计模式系列之建造者模式(Builder Pattern)——复杂对象的组装与创建
    设计模式系列之原型模式(Prototype Pattern)——对象的克隆
    动态追踪技术之SystemTap
    一次内核 crash 的排查记录
    LLVM Coding Standards
  • 原文地址:https://www.cnblogs.com/weifeng-888/p/10706420.html
Copyright © 2011-2022 走看看