如何使用oauth 1.0签署访问令牌请求

时间:2016-08-26 21:01:40

标签: oauth access-token withings

我目前正致力于通过web连接withings api并且能够自动获取令牌秘密并从auth中的回调函数获取userId,但是当尝试实现步骤3(生成令牌)时,我总是得到签名错误。如果可能,这是基本逻辑请帮助。

  nonce = getNonce(32);
  date = Math.round((new Date()).getTime() / 1000.0);
      var requestSig = oauthSign.hmacsign(
        'GET',
        'https://oauth.withings.com/account/access_token',
        {oauth_consumer_key: <myconsumerkey>,
          oauth_nonce: nonce,
          oauth_signature_method: 'HMAC-SHA1',
          oauth_timestamp: date.toString(),
          oauth_token: oauth_token,
          oauth_version: '1.0'
        }, newSecret);
      var hey = encodeURIComponent(requestSig);
      var permanentTokensLink = "https://oauth.withings.com/account/access_token?oauth_consumer_key=<myconsumerkey>&oauth_nonce="+nonce+"&oauth_signature="+hey+"&oauth_signature_method=HMAC-SHA1&oauth_timestamp="+date+"&oauth_token="+oauth_token+"&oauth_version=1.0";
      return {link:permanentTokensLink, newSecret: newSecret, tokensecret: oauth_token_secret, dataObj: dataObj, token: oauth_token};

newSecrect是一个消费者秘密&amp; tokensecret,而foreverTokensLink是我应该能够点击以获取访问密钥和秘密的地方。为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

我在签名参数和我正在创建的链接中遗漏了一个oauth验证程序,并且秘密应该分解为两部分(消费者保密,令牌秘密),以便由npm包hmacsign正确使用