我使用node.js(10.x)和express(3.x)創建Web應用程序。我選擇node-oauth作爲twitter oauth模塊。在獲取OAuth的請求令牌流時,我收到了「給定的URL被認爲是惡意軟件」
但在請求令牌時,返回以下錯誤。
{的StatusCode:401, 數據:?「< XML版本= 」1.0「 編碼= 」UTF-8「> \ n \ n <請求>/OAuth的/ request_token < /請求> \ n <?錯誤>指定的網址被認爲是惡意軟件< /錯誤> \ n < /哈希> \ n」}
認證已經成功了幾次,卻突然被送到這個錯誤之後,我從來沒有成功過。
怎麼了? 多次請求是原因?
的代碼是類似如下
var oauth = require('oauth');
var consumer = new oauth.OAuth(
'https://api.twitter.com/oauth/request_token'
, 'https://api.twitter.com/oauth/access_token'
, 'My consumer key'
, 'My consumer secret'
, '1.0A'
, 'http://localhost:3000/sessions/access' //I'm testing in local
, 'HMAC-SHA1'
);
/** In the actual code, Some express settings exist like followings
* var express = require('express');
* var app = express();
* app.set(foo, bar);
* app.use(baz);
* and so on.
*/
app.get('/sessions/connect', function(req, res, next) {
consumer().getOAuthRequestToken(function(err, oauthToken, oauthTokenSecret, results) {
if (err) { //This err says the above error.
next(err);
} else {
req.session.oauthRequestToken = oauthToken;
req.session.oauthRequestTokenSecret = oauthTokenSecret;
res.redirect('https://api.twitter.com/oauth/authorize?oauth_token=' + oauthToken);
}
});
});
app.get('/sessions/access', function(req, res, next) {
consumer().getOAuthAccessToken(req.session.oauthRequestToken, req.session.oauthRequestTokenSecret, req.query.oauth_verifier, function(err, oauthAccessToken, oauthAccessTokenSecret, results) {
if (err) {
next(err);
} else {
req.session.oauthAccessToken = oauthAccessToken;
req.session.oauthAccessTokenSecret = oauthAccessTokenSecret;
req.session.user_id = results.user_id;
req.session.isAuthorized = true;
res.redirect('/');
}
});
});
感謝
非常感謝! 我會檢查頁面。 – Ken 2013-04-06 12:44:48