我有一些必须使用request params hash签名的API。 例如,我有2个参数 - 请求参数中的登录名和密码。所以我需要添加使用登录和密码字段哈希计算的param校验和。
我该如何实施?现在,当我尝试计算它时,我有自依赖性错误。
login = test
password = test
somefield = lalala
checksum = md5([login][password][somefield]) <- here is dynamic evaluation
答案 0 :(得分:10)
显示自依赖性错误,因为它实际上尝试评估完整URL以获取其他参数之一。这可能需要在Paw中修复。
但是,你可以忽略警告,因为它仍然有效。这是一个例子:
在您的示例中,校验和为8bc22595f820ff1612fd16294c02359a
,这是预期的结果。
更新:如果您想使用JavaScript代码执行此操作,请举例说明。
function evaluate(context) {
var url = context.getCurrentRequest().url;
var query = url.split('?')[1];
var fragments = query.split('&');
var login, password, somefield;
for (var i in fragments) {
var keyvalue = fragments[i].split('=');
if (keyvalue[0] == "login") {
login = keyvalue[1];
} else if (keyvalue[0] == "password") {
password = keyvalue[1];
} else if (keyvalue[0] == "somefield") {
somefield = keyvalue[1];
}
}
// you can now compute whatever hash you want with these values
// the self-dependency error will be shown but it should work
return "" + login + "-" + password + "-" + somefield;
};
要使用JS计算MD5哈希值,您需要包含第三方库。通过npm可以更容易(更干净地)完成。了解我们如何在其他扩展程序中管理依赖项:https://github.com/LuckyMarmot/Paw-PythonRequestsCodeGenerator