繁体   English   中英

OAuth,request_token 上的 403 响应错误

[英]OAuth, 403 response error on request_token

尝试获取请求令牌时收到 http 403 响应错误。

我检查了我的基本弦的歌唱过程,这是正确的。 如果

我在 Twitter 开发站点上使用默认键,它生成的结果与站点上列出的结果相同,所以我很确定没关系。

任何见解将不胜感激!


var reqURL = 'https://api.twitter.com/oauth/request_token';
var reqNonce = getNonce();      
var reqTimeStamp = getTimeStamp();  
var reqSignatureMethod = 'HMAC-SHA1';
var reqOauthVersion = '1.0';
var reqConsumerKey = 'ySBPkqxaRlheQKFwejMpqg';
var reqConsumerSecret = '______________&'  // note the & at the end..
var reqCallback = 'http%3A%2F%2Flocalhost%3A3005%2Fthe_dance%2Fprocess_callback%3Fservice_provider_id%3D11'
var reqQuery = 'oauth_callback=' + reqCallback + '&oauth_consumer_key=' + reqConsumerKey + '&oauth_nonce=' + reqNonce + '&oauth_signature_method=' + reqSignatureMethod + '&oauth_timestamp=' + reqTimeStamp + '&oauth_version=' + reqOauthVersion;
var reqBaseString = 'POST&' + reqURL + '&' + encodeURIComponent(reqQuery);
var reqSignature = b64_hmac_sha1(reqConsumerSecret, reqBaseString);
var reqSignature = reqSignature + '=';
var request = new XMLHttpRequest();
request.onreadystatechange = function(data) {
    if (request.readyState == 4) {

        // Good response, got the xml file
        if (request.status == 200) {
            alert ('good response');
        }
    }
};

// alert (reqURL);
// alert (reqBaseString);

var oauthParams = encodeURIComponent("OAuth oauth_callback=\"" + reqCallback + "\",oauth_consumer_key=\"" + reqConsumerKey + "\",oauth_nonce=\"" + reqNonce + "\",oauth_signature_method=\"" + reqSignatureMethod + "\",oauth_timestamp=\"" + reqTimeStamp + "\",oauth_version=\"1.0\",oauth_signature=\"" + reqSignature + "\"");

request.open("POST", reqURL, true);
request.setRequestHeader("Accept", "text/plain, */*");
request.setRequestHeader("Connection", "Keep-Alive");
request.setRequestHeader("Authorization", oauthParams);
request.send();

我发现非常有用的是获取原始 HTTP 请求,该请求与 cnauroth 建议的 Netflix OAuth 测试一起使用,然后将其与您在此处使用此代码段发送的内容进行比较。 OAuth 很棘手而且不好玩,所以如果你可以区分这两个请求,你应该能够找到一些不正确的编码或放错位置的 &。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM