在成功检索用户的access_token和他的secret_token之后调用API时遇到了麻烦,如下所示:
{
oauth_token: '4xxxxxxxx-asdasdasd......',
oauth_token_secret: 'XXX........',
user_id: '4xxxxxxxx'
}
我代表我的应用程序在用户登录中检索了这些内容。例如,像 Twitter 登录实现。
现在可以从 API 检索数据 我不确定 OAuth 1.0 的规范,但我知道在 OAuth 2.0 中您可以简单地在标头中使用'Authorization: Bearer ' . $accessToken
。 OAuth 1.0 是否需要为每个 API 调用生成另一个签名?我已经搜索过这个问题,但没有找到明确的解决方案。
Authorization
标头的值为
OAuth and a bunch of fields
。有一个关于它的规范,并且还会生成一个签名并将其添加到该字符串中,但您不必自己执行此操作。您可以使用
request模块。例如,以下是如何获取 Twitter 用户的个人资料:
request.get('https://api.twitter.com/1.1/users/show.json', {
oauth:{
consumer_key:'...',
consumer_secret:'...',
token:'...',
token_secret:'...'
},
qs:{user_id:'...'} // or screen_name
}, function (err, res, body) {})
您可以将上述代码与任何 OAuth1.0 提供商一起使用。您需要传递的只是您的应用程序和用户凭据。在极少数情况下,您可能需要传递其他选项(查看
oauth 签名 部分)。