2014-02-14 40 views
0

我正在嘗試使用grant_type=password oauth流與Twitter API。我如何在nodejs中實現此流程。如何獲取自治客戶端中的令牌(用戶名 - 密碼流)

var twitterConsumerKey = ''; 
var twitterConsumerSecret = ''; 

var OAuth2 = require('oauth').OAuth2; 
var oauth2 = new OAuth2(
    twitterConsumerKey, 
    twitterConsumerSecret, 
    'https://api.twitter.com/', 
    null, 
    'oauth2/token', 
    null 
); 
oauth2.getOAuthAccessToken(
    '', 
    {'grant_type':'client_credentials'}, 
    function (e, access_token, refresh_token, results){ 
     console.log('bearer: ',access_token); 
    } 
); 
+0

http://stackoverflow.com/questions/6822840/is-there-a-node-oauth-server實現 –

+0

@ user503413我已經更新了哪裏使用node-auth模塊的問題。 {'grant_type':'password'}可能在同一模塊中? – user3180402

回答

0

看起來像推特支持Application Only Authentication

我不熟悉的OAuth的模塊,但你可以使用mikeal/request如下:

var request = require('request'); 

request.post({ 
    url: 'https://api.twitter.com/', 
    auth: { 
    user: twitterConsumerKey, 
    pass: twitterConsumerSecret 
    }, 
    form: { grant_type:'client_credentials'}, 
    json: true 
}, function (err, resp, body) { 

    var token = body.access_token; 

    //now you can use it for other APIs 
    request.get({ 
    url: '....', 
    headers: { 
     Authorization: 'Bearer ' + token 
    } 
    }, function() {}); 

}); 
+0

您的示例顯示了{grant_type:'client_credentials'}。我正在尋找{grant_type:'password'}。我想實現oauth客戶端 – user3180402

+0

對不起,我誤解了這個問題。那麼你正在尋找o_uth __resource owner__ flow,我認爲twitter不支持它。 –

+0

是的,我需要使用npm的資源所有者流。 – user3180402

相關問題