我正在尝试将 Resource 与受 HMAC 身份验证方法保护的 API 一起使用。所以我需要将“身份验证”标头附加到请求中。
在此示例代码中,我使用 GET 从 API 获取文章,并使用“更新”自定义方法对其进行更新。对于更新,我需要 Authentication 标头。问题是$scope.article
当undefined
我定义标题时。
getAuth
函数计算符号。
建议?
function EditCtrl($scope,$resource,articleId) {
var Article = $resource('/blog/articles/:articleId',
{articleId:articleId}, {
update: {
method:'PUT',
headers: {Authentication: getAuth('key','PUT','/blog/articles/'+articleId,$scope.article)}
}
});
var article = Article.get();
$scope.article = article;
$scope.save = function(){
article.$update();
}
}
function getAuth(key,verb,resource,data) {
//data is undefined there
content_md5 = CryptoJS.MD5(JSON.stringify(data));
message = verb+'\n'+resource+'\n'+content_md5;
hash = CryptoJS.HmacSHA512(message, key);
var sign = "AuthHMAC 0123456789:"+hash.toString(CryptoJS.enc.Base64);
return sign;
}