我正在使用 django-piston 尝试创建一个支持 oAuth 的 API。
我开始在以下位置使用本教程:
http://blog.carduner.net/2010/01/26/django-piston-and-oauth/
我在活塞的管理界面中添加了一个消费者,出于测试目的,密钥和秘密都设置为“abcd”。
url 已成功连接,并调用了 oAuth 提供程序。
但是,使用 tripit (python get_request_token.py " http://127.0.0.1:8000/api " abcd abcd) 运行我的获取请求令牌测试时,我收到以下错误:
无效的签名。Expected signature base string: GET&http%3A%2F%2F127.0.0.1%3A8000%2Fapi%2Foauth%2Frequest_token%2F&oauth_consumer_key%3Dabcd%26oauth_nonce%3D0c0bdded5b1afb8eddf94f7ccc672658%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1275135410%26oauth_version%3D1.0
问题似乎出在 Piston 的 oauth.py 的 _check_signature 方法中,其中
valid_sig = signature_method.check_signature(oauth_request, consumer, token, signature)
正在返回错误。但是,我无法弄清楚如何验证签名。
有任何想法吗?
更新:
如果我从活塞的后端删除测试消费者,返回的响应被正确设置为“无效消费者”,所以这个查找似乎正在工作。