gpt4 book ai didi

javascript - 如何签署 AWS API 请求?

转载 作者:行者123 更新时间:2023-11-28 10:54:58 25 4
gpt4 key购买 nike

各位。

我一直在开发(好吧,刚刚开始)一个 Web 应用程序,该应用程序将利用 Amazon Web Services 的图书搜索 Web API。

我的问题...是为了使用他们的 API,您必须使用 HMAC SHA 哈希对所有请求进行签名,并在将请求发送给他们时将签名哈希附加到您的查询中。

在阅读了我可以获得的文档后,我昨晚编写了一些代码,看来我没有使用我应该使用的哈希算法不正确地签署对 AWS API 的请求。

这是我当前用于访问他们的 API 的代码,为了我自己的安全,删除了所有 key :

Meteor.methods

"isbnSearch": (isbn) ->

ts = encodeURIComponent(new Date().toISOString())

reqArray = [
"Service=AWSCommerceService",
"Operation=ItemLookup",
"ResponseGroup=Medium%2CImages",
"IdType=ISBN",
"Timestamp="+ts,
"AWSAccessKeyId=<Access Key Here>",
"ItemId="+isbn,
"Version=2014-08-02"
]

req = reqArray.sort().join('&')

stringToSign = "Get\nwebservices.amazon.com\n/onca/xml\n" + req
theHash = CryptoJS.HmacSHA256(stringToSign, "<Secret Key Here>").toString()
request = req + "&Signature=" + theHash
reqURL = "http://webservices.amazon.com/onca/xml?" + request

result = HTTP.get reqURL, (e, res) ->

console.log res

我正在使用AWS提供给我的AWSAccessKeyId,以及相应位置的 key ,我想我只是散列了一些错误的东西。

任何帮助将不胜感激!

我从 AWS 得到的回复如下:

<?xml version="1.0"?>
<ItemLookupErrorResponse xmlns="http://ecs.amazonaws.com/doc/2014-08-02/">
<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.</Message>
</Error>
<RequestId>3377bde5-a006-429d-a1f6-8c4faf1b8efc</RequestId>
</ItemLookupErrorResponse>

最佳答案

根据http://docs.aws.amazon.com/AWSECommerceService/latest/DG/rest-signature.html (第 9 步)您需要对签名中的所有 + 和 = 进行编码。您似乎没有在代码中这样做。

关于javascript - 如何签署 AWS API 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25104572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com