Twitter、JavaScript&;OAuth:验证OAuth签名和令牌失败
我试图使用JavaScript实现OAuth,但是当我向发出请求时,我在响应中得到了上面的消息(“未能验证OAuth签名和令牌”) 据我所知,我在签名库的编码中包含了所有正确的参数: basestring:(为安全起见,已删除使用者密钥) 发布http%3A%2F%2Ftwitter.com%2fouth%2fouth\u请求令牌%26oauth\u回调(&F) %3oob%26oauth\u消费者密钥 %3D1111111111111111222222222%26当前 %3DO3cHsSXrfnzT%26oauth\u签名\u方法%3DHMAC-SHA1%26oauth\u时间戳 %3D1275928008%26oauth_版本%3D1.0 消费者机密:(为安全起见删除) 111111111111111122222222& 签名: R3eHMuQ04F37+XPJSISO0AMZC8 Post数据:(为安全起见,已删除使用者密钥) oauth_callback=oob&oauth_consumer_key=1111111111111111111111 2222222&oauth_signature_method=HMAC-SHA1&oauth_signature=pjDh8jkp89ThBtzzB9dQmxQfcg&oauth_timestamp=1275928413&oauth_nonce=qyq3Jhn8rtTZ&oauth_version=1.0 我已经检查了我的设备上的时钟是否正确,因为这是我能找到的解决这个问题的唯一真实结果:(nonce是唯一的,每次运行时都会生成。。。 不幸的是,我现在不知道去哪里看。我找不到任何明显的东西。我已经两次重新编写了整个请求——一次使用oauth.js库,一次完全手动,但在这两种情况下,它都失败了,并出现了相同的错误 有什么建议吗Twitter、JavaScript&;OAuth:验证OAuth签名和令牌失败,javascript,oauth,twitter,Javascript,Oauth,Twitter,我试图使用JavaScript实现OAuth,但是当我向发出请求时,我在响应中得到了上面的消息(“未能验证OAuth签名和令牌”) 据我所知,我在签名库的编码中包含了所有正确的参数: basestring:(为安全起见,已删除使用者密钥) 发布http%3A%2F%2Ftwitter.com%2fouth%2fouth\u请求令牌%26oauth\u回调(&F) %3oob%26oauth\u消费者密钥 %3D1111111111111111222222222%26当前 %3DO3cHsSXrf
干杯可能与-twitter上讨论的链接相同:显然,不允许使用oob的客户端javascript!?!?您的签名看起来有误,它应该始终以a=结尾。下面是一个有效的例子:“YEBbMFDYmp6DvZ3qW1aCx8q7kTc=”.您的基本字符串看起来正确,因此我认为您的签名密钥出错 在C#中,我是如何构建签名密钥的 字符串signatureKey=Uri.EscapeDataString(consumer_secret)+“&” var hmacsha1=new hmacsha1(new ascienceoding().GetBytes(signatureKey)) string signatureString=Convert.ToBase64String( hmacsha1.ComputeHash( 新的ascienceoding().GetBytes(SignatureBasString)) 字符串oauth_签名=signatureString
有关此过程的更多信息:您是从您的计算机/本地主机还是从实时web服务器进行调试?据我所知,您需要从web服务器进行测试。我正在设备(和webos模拟器)上进行调试