python oauth2 客户端 liboauth2

码农软件 · 软件分类 · OAuth开发包 · 2019-04-18 22:58:13

软件介绍

liboauth2 是一个轻量级的oauth2 python客户端。

liboauth2 只是实现oauth2协议,并没有实现任何第三方oauth2认证。

如果需要实现第三登录,可以看pysns

支持四种认证方式

一、Authorization Code授权码方式

二、Implicit Grant隐式授权

三、Resource Owner Password Credentials

四、Client Credentials客户端证书授权

安装

easy_install liboauth2

腾讯微博演示

# -*- coding: utf-8 -*-


import liboauth2
import urllib
from flask import Flask, redirect, request


CLIENT_ID = 'you client id'
CLIENT_SECRET = 'you client secret'

client = liboauth2.Client(CLIENT_ID, CLIENT_SECRET)


REDIRECT_URI = 'http://localhost:5000/callback/'
AUTH_URI = 'https://open.t.qq.com/cgi-bin/oauth2/authorize'
ACCESS_TOKEN_URL = 'https://open.t.qq.com/cgi-bin/oauth2/access_token'


app = Flask(__name__)
app.debug = True


@app.route('/')
def home():
    # get auth url
    url = client.get_auth_url(AUTH_URI, REDIRECT_URI)
    return redirect(url)


@app.route('/callback/')
def callback():
    # get access token
    params = {'code': request.args['code'], 'redirect_uri': REDIRECT_URI}
    resp = client.get_access_token(ACCESS_TOKEN_URL, liboauth2.GRANT_TYPE_AUTH_CODE, params)
    # print resp
    def urldecode(values):
        ret = {}
        for s in values.split('&'):
            if s.find('=') > -1:
                k, v = map(urllib.unquote, s.split('='))
                ret[k] = v
                #ret.setdefault(k, []).append(v)
        return ret
    data = urldecode(resp['result'])
    # set access token and query user info
    client.set_access_token(data['access_token'])
    params = {
            'oauth_consumer_key': CLIENT_ID,
            'openid': data['openid'],
            'clientip': request.remote_addr,
            'oauth_version': '2.a',
            }
    resp = client.fetch('http://open.t.qq.com/api/user/info', params)
    return str(resp['result'])


if __name__ == '__main__':
    app.run(host='localhost', port=5000)

 

本文地址:https://codercto.com/soft/d/3888.html

随意搜寻

随意搜寻

Peter Morville / 沈浩翔 / 华中科技大学出版社 / 2013-10-1 / CNY 68.00

在这个信息爆炸的年代,我们如何找到出路?在纷繁交错的信息流中,我们如何筛选出想要的信息?既然Google已经魔法般地将正确答案呈现在我们面前,为什么信息架构的方式依然重要? 《Web信息架构》的作者Peter Morville,用了10年时间回答以上问题。《随意搜寻》是 一趟奇妙的旅程,让未来触手可及:无论何时何地,我们都能找到任何人、任何东西。这本书即是路线图,也是信息时代的“玛雅预言”,......一起来看看 《随意搜寻》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具