liboauth2是一个轻量级的oauth2pytho客户端。
liboauth2只是实现oauth2协议,并没有实现任何第三方oauth2认证。
如果需要实现第三登录,可以看pyss
支持四种认证方式
一、AuthorizatioCode授权码方式
二、ImplicitGrat隐式授权
三、ResourceOwerPasswordCredetials
四、ClietCredetials客户端证书授权
安装
easy_istallliboauth2腾讯微博演示
#-*-codig:utf-8-*-importliboauth2importurllibfromflaskimportFlask,redirect,requestCLIENT_ID='youclietid'CLIENT_SECRET='youclietsecret'cliet=liboauth2.Cliet(CLIENT_ID,CLIENT_SECRET)REDIRECT_URI='https://localhost:5000/callback/'AUTH_URI='https://ope.t.qq.com/cgi-bi/oauth2/authorize'ACCESS_TOKEN_URL='https://ope.t.qq.com/cgi-bi/oauth2/access_toke'app=Flask(__ame__)app.debug=True@app.route('/')defhome():#getauthurlurl=cliet.get_auth_url(AUTH_URI,REDIRECT_URI)returredirect(url)@app.route('/callback/')defcallback():#getaccesstokeparams={'code':request.args['code'],'redirect_uri':REDIRECT_URI}resp=cliet.get_access_toke(ACCESS_TOKEN_URL,liboauth2.GRANT_TYPE_AUTH_CODE,params)#pritrespdefurldecode(values):ret={}forsivalues.split('&'):ifs.fid('=')>-1:k,v=map(urllib.uquote,s.split('='))ret[k]=v#ret.setdefault(k,[]).apped(v)returretdata=urldecode(resp['result'])#setaccesstokeadqueryuserifocliet.set_access_toke(data['access_toke'])params={'oauth_cosumer_key':CLIENT_ID,'opeid':data['opeid'],'clietip':request.remote_addr,'oauth_versio':'2.a',}resp=cliet.fetch('https://ope.t.qq.com/api/user/ifo',params)returstr(resp['result'])if__ame__=='__mai__':app.ru(host='localhost',port=5000)







评论