【发布时间】:2015-09-08 16:21:03
【问题描述】:
我使用的 API 需要 Authorization 标头内的参数的 HMAC sha256 哈希。
例如,这些可能是参数:
{ "book": { "title": "Test title", "author": "Test author" } }
我的问题是在设置标题时我无法弄清楚如何访问这些参数。
export default DS.RESTAdapter.extend({
host: 'http://myapi',
namespace: 'v1',
shouldReloadAll() { return true; },
shouldBackgroundReloadRecord() { return true; },
headers: function() {
var params = 'PLACE THE PARAMS HERE';
var hmacString = CryptoJS.HmacSHA256('string', params).toString(CryptoJS.enc.Hex);
return {
Authorization: hmacString
}
}.property("Authorization")
});
上面的代码可以运行,但是我需要用 JSON 格式的实际参数替换 params 变量(如上)。
如何做到这一点?
【问题讨论】:
-
如果您不写如何获取实际参数,我们怎么知道该怎么做?
-
@DanielKmak 这正是我要问的问题。我不知道如何获得参数。我知道您可以使用
ajaxOptions: function(url, type, hash) { this._super(url, type, hash).data }获取参数,但这在headers函数中不起作用。有什么想法吗? -
不,我问的是,你从哪里得到这个:
{ "book": { "title": "Test title", "author": "Test author" } },例如,你是通过 ajax 得到的吗? -
这些参数是 DS.RESTAdapter 发送到 API 服务器的示例,正如在其他地方的模型中定义的那样。如果您在
ajaxOptions中调用this._super(url, type, hash).data,它们也会出现。
标签: javascript jquery json ember.js ember-data