Oauth 401(未经授权)仅在释放模式下。调试,一切都很好!为什么?
我正在为Google Chrome创建一个扩展,但在使用Twitter进行身份验证时遇到了问题 此扩展发布在: 正如您所看到的,我也在使用Dropbox API(它也适用于OAuth 1.0),而且它工作得非常完美 要使用OAuth,请使用位于的名为jsOAuth的库 当用户点击“Twitter”时,会出现一个窗口(弹出窗口)真实的:Oauth 401(未经授权)仅在释放模式下。调试,一切都很好!为什么?,oauth,google-chrome-extension,twitter-oauth,Oauth,Google Chrome Extension,Twitter Oauth,我正在为Google Chrome创建一个扩展,但在使用Twitter进行身份验证时遇到了问题 此扩展发布在: 正如您所看到的,我也在使用Dropbox API(它也适用于OAuth 1.0),而且它工作得非常完美 要使用OAuth,请使用位于的名为jsOAuth的库 当用户点击“Twitter”时,会出现一个窗口(弹出窗口)真实的: //Request Windows token chrome.windows.create({url: url, type:"popup"}, functio
//Request Windows token
chrome.windows.create({url: url, type:"popup"}, function(win){
chrome.tabs.executeScript(win.tabs[0].id, { file: "/scripts/jquery-1.7.1.min.js" }, function() {
chrome.tabs.executeScript(win.tabs[0].id, { file: "/scripts/querystring-0.9.0-min.js" }, function() {
chrome.tabs.executeScript(this.args[0], { file: "/scripts/services/TwitterPage.js" });
});
});
});
url=_https://api.twitter.com/oauth/authorize?oauth_token=XXX&oauth_token_secret=YYY&oauth_callback_confirmed=true_
TwitterPage.js代码
然后将显示“身份验证”窗口
完整链接:
正如您在上面的代码中所看到的,一个请求被发送到我的分机。
以下是捕获此请求的代码:
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
chrome.windows.remove(sender.tab.windowId, fetchAccessToken);
});
fetchAccessToken函数:
查看控制台,错误是:GEThttps://api.twitter.com/oauth/access_token 401(未经授权)
显示
完整图像:
问题
怎么了
分步调试,验证成功!?!为什么?请求了两次
GET/oauth/access\u令牌。一个成功,另一个不成功。它可能正在获取401
,因为request\u令牌只有效一次。如果您停止它执行两次,它应该是好的
在旁注中,即使在获取access\u令牌时,您也包括oauth\u回调
。这不是首选。如果出现错误,系统将重试。401发生在两次呼叫中(第一次和第二次尝试)。第二次尝试时我得到了200。您可能会遇到Twitter基础设施中的复制滞后。您在一台服务器上授权一个请求\u令牌,而获取访问\u令牌的请求到达另一台未意识到其已被授权的服务器。尝试在获取访问令牌之前添加5秒超时。
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
chrome.windows.remove(sender.tab.windowId, fetchAccessToken);
});
fetchAccessToken = function() {
oauthObj.fetchAccessToken(function(){
console.log("This code is only executed when debug step by step")
}, failureHandler);
}