我正在寻找有关在 Django 中为 OAuth 编写两条腿提供程序的教程/示例/说明。
很难找到关于 OAuth 提供者的文档,更难找到关于两条腿系统的文档......
我正在寻找有关在 Django 中为 OAuth 编写两条腿提供程序的教程/示例/说明。
很难找到关于 OAuth 提供者的文档,更难找到关于两条腿系统的文档......
我花了大约 3 天的时间试图弄清楚这一点,并希望为任何可以使用它的人提供这个我最终从我试图查询的服务中获得的工作示例。结果非常容易。PS 仅仅因为有人在使用 oauth 1.0并不意味着你不能使用 oauth2 库。
要获取 auth2,请键入 pip install oauth2。
在您的脚本中,您需要:
import oauth2
import time
import urllib2
def build_request(url, method='GET'):
params = {
'oauth_version': "1.0",
'oauth_nonce': oauth2.generate_nonce(),
'oauth_timestamp': int(time.time())
}
consumer = oauth2.Consumer(key='python_test',secret='your_secret')
params['oauth_consumer_key'] = consumer.key
req = oauth2.Request(method=method, url=url, parameters=params)
signature_method = oauth2.SignatureMethod_HMAC_SHA1()
req.sign_request(signature_method, consumer, None)
return req
调用函数并查看输出如下所示:
request = build_request('http://demo.echo360.com/ess/scheduleapi/v1/terms')
u = urllib2.urlopen(request.to_url())
print u.readlines()
“2 legged”只是没有访问令牌或访问令牌秘密的普通 OAuth 请求。就是这样。您仍然使用客户端凭据(标识符和密码),但使用空字符串作为访问令牌参数。根据您使用的服务器库,您可以在发出请求时省略 oauth_token 参数。
这是一篇很好的开始文章: http: //philipsoutham.com/post/2172924723/two-legged-oauth-in-python
活塞的两腿 OAuth:https ://github.com/gregbayer/django-piston-two-legged-oauth