我正在與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