我有一些必须使用请求参数哈希签名的 API。例如,我有 2 个参数 - 请求参数中的登录名和密码。所以我需要添加使用登录名和密码字段哈希计算的参数校验和。
我该如何实施?现在当我尝试计算它时,我有自依赖错误。
login = test
password = test
somefield = lalala
checksum = md5([login][password][somefield]) <- here is dynamic evaluation
我有一些必须使用请求参数哈希签名的 API。例如,我有 2 个参数 - 请求参数中的登录名和密码。所以我需要添加使用登录名和密码字段哈希计算的参数校验和。
我该如何实施?现在当我尝试计算它时,我有自依赖错误。
login = test
password = test
somefield = lalala
checksum = md5([login][password][somefield]) <- here is dynamic evaluation
显示自依赖错误是因为它实际上尝试评估完整 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 哈希,您需要包含一个 3rd 方库。这可以通过 npm 更容易(也更干净)完成。了解我们如何管理其他扩展中的依赖项:https ://github.com/LuckyMarmot/Paw-PythonRequestsCodeGenerator