我目前正致力于通过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是我应该能够点击以获取访问密钥和秘密的地方。为什么这不起作用?
答案 0 :(得分:0)
我在签名参数和我正在创建的链接中遗漏了一个oauth验证程序,并且秘密应该分解为两部分(消费者保密,令牌秘密),以便由npm包hmacsign正确使用