HMAC 認証方式で保護された API で Resource を使用しようとしています。したがって、リクエストに「Authentication」ヘッダーを追加する必要があります。
このコード例では、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;
}