我正在与Django活塞一起尝试创建支持oAuth的API。“签名无效”:与Django活塞oAuth供应商
我开始了使用教程在:
http://blog.carduner.net/2010/01/26/django-piston-and-oauth/
我增加了一个消费者活塞的管理界面与密钥和密码都设置为“ABCD”用于测试目的。
这些网址已成功连线并调用了oAuth提供程序。
但是,运行我的GET请求令牌与测试TripIt的(蟒蛇get_request_token.py“http://127.0.0.1:8000/api” ABCD ABCD),我收到以下错误:
Invalid signature. 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
的问题似乎在于活塞的的_check_signature方法内oauth.py,其中
valid_sig = signature_method.check_signature(oauth_request, consumer, token, signature)
返回false。然而,我不能解决如何得到验证的签名。
任何想法?
更新:
如果我删除从活塞的后端测试的消费者,返回的响应正确设置为“无效的消费者”,所以此查找似乎是工作。
...此外,另一个问题是URL末尾所需的“/”之间的差异;请求中额外的%2F使签名无效。 – 2010-05-30 16:58:32