liboauth2 python oauth2 客户端

我要开发同款
匿名用户2013年07月20日
43阅读
开发技术Python
所属分类Web应用开发、OAuth开发包
授权协议MIT

作品详情

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

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

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

支持四种认证方式

一、AuthorizationCode授权码方式

二、ImplicitGrant隐式授权

三、ResourceOwnerPasswordCredentials

四、ClientCredentials客户端证书授权

安装

easy_installliboauth2

腾讯微博演示

#-*-coding:utf-8-*-importliboauth2importurllibfromflaskimportFlask,redirect,requestCLIENT_ID='youclientid'CLIENT_SECRET='youclientsecret'client=liboauth2.Client(CLIENT_ID,CLIENT_SECRET)REDIRECT_URI='https://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('/')defhome():#getauthurlurl=client.get_auth_url(AUTH_URI,REDIRECT_URI)returnredirect(url)@app.route('/callback/')defcallback():#getaccesstokenparams={'code':request.args['code'],'redirect_uri':REDIRECT_URI}resp=client.get_access_token(ACCESS_TOKEN_URL,liboauth2.GRANT_TYPE_AUTH_CODE,params)#printrespdefurldecode(values):ret={}forsinvalues.split('&'):ifs.find('=')>-1:k,v=map(urllib.unquote,s.split('='))ret[k]=v#ret.setdefault(k,[]).append(v)returnretdata=urldecode(resp['result'])#setaccesstokenandqueryuserinfoclient.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('https://open.t.qq.com/api/user/info',params)returnstr(resp['result'])if__name__=='__main__':app.run(host='localhost',port=5000)

 

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论