如何在Javascript中为AWS创建签名?

时间:2014-11-13 18:25:53

标签: javascript node.js amazon-web-services hmac mechanicalturk

我正在尝试使用Node.js为AWS Mechanical Turk创建签名,但是我很难这样做。目前我正在使用以下内容,但不断收到错误:

CryptoJS.HmacSHA1(service + operation + timestamp, process.env.SECRET_ACCESS_KEY); 

签名的解释是link。它声明要创建一个签名

  

请求签名HMAC是通过连接来计算的   服务,操作和时间戳参数的值,其中   命令,然后使用。计算符合RFC 2104的HMAC   秘密访问密钥为"密钥。"计算的HMAC值应该是   base64编码,并作为签名请求的值传递   参数。有关更多信息,请转到   http://www.faqs.org/rfcs/rfc2104.html

1 个答案:

答案 0 :(得分:4)

我认为这对你有用(我使用GetAccountBalance)作为一个简单的例子:

<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/hmac-sha1.js"></script>  
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/components/enc-base64-min.js"></script>  
<script>
var service = "AWSMechanicalTurkRequester";
var timestamp = new Date().toISOString();
var operation = "GetAccountBalance";
var secret = "YOURSECRETKEY";
var signature = CryptoJS.HmacSHA1(service + operation + timestamp, secret).toString(CryptoJS.enc.Base64);
</script>