当我尝试通过Twitter登录Oauth时,我一直得到401。
我正在使用twitter_oauth-0.3.3和rails
中的oauth-0.3.6以前它曾经很完美,所以经过一番挖掘,我意识到它可能与我的时区有关。
在Twitter回复的标题中,其中一个是:
date:
- Sun, 11 Apr 2010 16:53:34 GMT
即使时间实际上是BST的17:53:34
我假设请求是使用BST时间签名的,所以它失败了。
任何人遇到此问题/找到了解决方法吗?
答案 0 :(得分:0)
好吧,如果时间是BST 17:53:34,那么它确实 16:53:34 GMT。
所以,如果你正在使用的oauth库无法处理服务器指定不同时区的时间(你某些那是导致问题的原因)那么它可能是库中的一个错误。
(不是很有帮助,我知道 - 我不使用ruby并且自己没有进行任何oauth开发。)您是否尝试过联系图书馆开发人员?
答案 1 :(得分:0)
签名中使用的OAuth时间戳采用epoch time格式。
您可能需要检查Authorization
请求标头,检查 oauth_timestamp 并使用此有用的online tool检查您要发送的内容。
您的纪元时间与Twitter之间的差异(您在回复中得到的,如您所写)应该在+ - 300秒的范围内。
希望有所帮助!