Meteor检索返回undefined的Twitter凭据

时间:2015-08-06 05:26:49

标签: meteor oauth

我正在尝试使用Twitter包来检索用户的凭据。客户端很好地接收临时令牌,但是当我使用它来检索真实凭证时,我得到了未定义。我的代码非常简单。

// Client
Twitter.requestCredential(function (tokenOrError) {
    Meteor.call('register', tokenOrError)
}

// Server
Meteor.methods({
    register: function(token) {
       var result = Twitter.retrieveCredential(token);
       console.log(result); // undefined
    }
})

当我查看我的mongo数据库时,挂起的凭据已正确存储在meteor_oauth_pendingCredentials中,并且返回给客户端的密钥是正确的。当我在数据库中执行相同的查询时,它返回结果就好了,但是从服务器调用retrieveCredential却没有。

有什么想法吗?

OAuth代码的链接: https://github.com/meteor/meteor/blob/832e6fe44f3635cae060415d6150c0105f2bf0f6/packages/oauth/pending_credentials.js https://github.com/meteor/meteor/blob/832e6fe44f3635cae060415d6150c0105f2bf0f6/packages/oauth/oauth_server.js https://github.com/meteor/meteor/blob/devel/packages/twitter/twitter_server.js

我的问题与已经被问过的其他问题类似(Meteor retrieve Twitter credentials),但发布的解决方案对我不起作用。

1 个答案:

答案 0 :(得分:0)

原来API已更改,要求您在客户端上检索凭据密钥,并将凭证密钥和令牌发送到服务器。

// Client
Twitter.requestCredential(function (tokenOrError) {
    var secret = Package.oauth.OAuth._retrieveCredentialSecret(tokenOrError)
    Meteor.call('register', tokenOrError, secret)
}

// Server
Meteor.methods({
    register: function(token, secret) {
       var result = Twitter.retrieveCredential(token, secret);
       console.log(result);
    }
})

How can I get the credential secret in Meteor, when I do Facebook.requestCredential on the client?