che*_*ozo 4 javascript oauth tumblr google-chrome-extension
所以我从400获得了这个问题http://www.tumblr.com/oauth/authorize?oauth_token=xxx
.我使用此Google Chrome OAuth教程页面,只是从那里复制文件.
这一切都有效,直到有一天我不得不重新授权我的扩展.它失败了.
当我得到控制台时,我得到400个http结果代码和一条消息Missing or invalid oauth_verifier.
.
1)首先解决:哪里是oauth_verifier
?
我查看了授权应用程序时tumblr提出的请求.有一个http://www.tumblr.com/oauth/authorize?oauth_token=xxx
.
它被重定向到chrome-extension://jlaojpiafmimgibgdfbmphfkejnlifdn/chrome_ex_oauth.html?chromeexoauthcallback=true&oauth_token=XXX&oauth_verifier=dmbcbNDGj7QatrFznXG587RIM7wI1LG3bnKwYGy5tc2icmUVvE#_=_
.
验证器到位了,为什么我们不知道呢?在chrome_ex_oauth.js
我们有这个ChromeExOAuth.formDecode()
方法,将解码当前的网址并从中获取参数.
315号线有一个神奇的检查:
var keyval = param.split("=");
if (keyval.length == 2) {
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,网址结尾#_=_
是奇怪的.所以首先我决定稍微改写一下这个方法来解决这个oauth_verifier
问题.
2)它没有合作,oauth_verifier=dmbcbNDGj7QatrFznXG587RIM7wI1LG3bnKwYGy5tc2icmUVvE#_=_
所以我决定完全删除这个标签并获得:oauth_verifier=dmbcbNDGj7QatrFznXG587RIM7wI1LG3bnKwYGy5tc2icmUVvE
开始工作.
对我来说,这仍然是一个问题:Tumblr希望我遵循的重定向网址末尾的这个标签是什么?
我略微改变的方法如下:
ChromeExOAuth.formDecode = function(encoded) {
// Cut hash at the end of the url.
var hash_index = encoded.indexOf('#');
if ( hash_index > -1 ) {
encoded = encoded.substring(0, hash_index);
}
var params = encoded.split("&");
var decoded = {};
for (var i = 0, param; param = params[i]; i++) {
var keyval = param.split("=");
if (keyval.length == 2) {
var key = ChromeExOAuth.fromRfc3986(keyval[0]);
var val = ChromeExOAuth.fromRfc3986(keyval[1]);
decoded[key] = val;
}
}
return decoded;
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1717 次 |
最近记录: |