2015-03-03 83 views
3

我一直在使用passport.js。它的工作原理,我可以很容易地從API獲取oauth_tokenVerifier通過oauth令牌訪問用戶配置文件passport.js

在passport.js每個API具有戰略基本上決定如何使用該API服務器進行通信。在最後一個回調獲取返回的用戶配置文件。

但是我看到沒有辦法用oauth_token得到profile自己。它在Oauth認證結束時一次性地將數據保存在session或db中。

有什麼辦法,我可以用我的oauth_token直接訪問用戶配置文件的任何時間usingpassport方法。

在原型中,我看到userProfile功能,它做我所需要的,但它的某種私人方法。我不知道如何使用它

更新1

我一直在撿破爛passport.js的混帳回購協議,我才知道他們使用的「node-oauth」管理的API調用服務器。這在任何策略_oauth中都可用。

但我不知道調用什麼調用來獲取資源令牌。此外,我必須逐步啓動所有API調用以模擬令牌訪問調用。有沒有任何標準的方法來做到這一點。

回答

1

沒有挖掘到的代碼(不過話說之前使用護照),我假設oauth_token被存儲在數據庫中的用戶數據。您可能必須直接訪問數據庫模型才能獲取令牌,然後可以將其與提供程序API一起使用,以訪問所需的信息。

0

訪問以下頁面以掌握如何使用_oauth屬性。

https://github.com/ciaranj/node-oauth

它的工作原理是這樣的:

oauth.get(
    'https://api.twitter.com/1.1/trends/place.json?id=23424977', 
    'your user token for this app', //test user token 
    'your user secret for this app', //test user secret    
    function (e, data, res){ 
    if (e) console.error(e);   
    console.log(require('util').inspect(data)); 
    done();  
    }); 

如果你實現自己的OAuth1.0策略,您可以輕鬆地可能會覆蓋 下面的方法來實現自己的邏輯,取出由配置文件數據遠程服務器的OAuth:

/** 
* @overwritten 
* @method userProfile 
* @class OAuth1Strategy 
* @description used by OAuth1Strategy class while authenticating 
* to get the user profile from the server 
*/ 
OAuth1Strategy.prototype.userProfile = 
function(token, tokenSecret, params, done) { 

    this._oauth.get(
    config.profileUrl, 
    token, 
    tokenSecret,   
    function (e, data, res){ 
     if (e) console.error(e);   
     console.log(require('util').inspect(data)); 
     done(e, data);  
    }); 
}; 
相關問題