如何解决Garmin 连接 OAuth 用户访问令牌 签名方法 HMAC-SHA1 的签名无效
我目前正在实施 Garmin Connect 的授权方法。
到目前为止,我已成功检索到 Garmin 文档中所述的未经授权的请求令牌/秘密和令牌验证器。但是,当我尝试从 Garmin 服务器检索用户访问令牌/机密时出现异常。
我得到的例外是:签名方法的签名无效
根据 Garmin 文档,HTTP 请求应如下所示:
POST /oauth-service/oauth/access_token HTTP/1.1
Authorization: OAuth oauth_nonce="7338724861",oauth_signature="<VALUE>",oauth_consumer_key="<VALUE>",oauth_token="<VALUE>",oauth_timestamp="1622196587",oauth_verifier="<VALUE>",oauth_signature_method="HMAC-SHA1",oauth_version="1.0"
Host: connectapi.garmin.com
Accept: */*
我的请求头是这样实现的:
'Authorization' : '''OAuth oauth_verifier="$oauthVerifier",oauth_nonce="$oauthNonce",oauth_token="$oauthToken",oauth_signature="$calculatedHMACSHA1SignatureAccesstoken",oauth_consumer_key="$oauthConsumerKey",oauth_timestamp="$oauthTimestamp",oauth_signature_method="$oauthSignatureMethod",oauth_version="$oauthVersion"''',
我在哪里计算计算出的 HMACSHA1SignatureAccesstoken 如下:
var key = "$consumerSecret&$oauthTokenSecret";
var calculatedHMACSHA1SignatureAccesstoken = hmacSha1(key,baseString);
签名基本字符串如下所示:
POST&http%3A%2F%2Fconnectapi.garmin.com%2Foauth-service%2Foauth%2Faccess_token&oauth_consumer_key%3D$oauthConsumerKey%26oauth_nonce%3D$oauthNonce%26oauth_signature_method%3$oauthSignatureMethod%26oauth_timestamp%3D$oauthTimestamp%26oauth_token%3D$oauthToken%26oauth_verifier%3D$oauthVerifier%26oauth_version%3D$oauthVersion;
实际的请求头如下所示:
Authorization: OAuth oauth_verifier="<VALUE>",oauth_nonce="1622116490",oauth_timestamp="1622202890",oauth_version="1.0"
如您所见,请求是相同的,但我仍然收到签名方法 HMAC-SHA1 异常的无效签名。
有人会怎么做吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。