我正在尝试使用 HMAC 认证方法保护的 API,需要将 "Authentication" 标头附加到请求中。
在此示例代码中,我使用 GET 从 API 获取文章,并使用 "update" 自定义方法对其进行更新。为了进行更新,我需要 Authentication 标头。问题是当我定义标头时,$scope.article 为 undefined。
getAuth 函数计算签名。
有什么建议吗?
在此示例代码中,我使用 GET 从 API 获取文章,并使用 "update" 自定义方法对其进行更新。为了进行更新,我需要 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;
}