4

我有一些必须使用请求参数哈希签名的 API。例如,我有 2 个参数 - 请求参数中的登录名和密码。所以我需要添加使用登录名和密码字段哈希计算的参数校验和。

我该如何实施?现在当我尝试计算它时,我有自依赖错误。

login = test
password = test
somefield = lalala
checksum = md5([login][password][somefield]) <- here is dynamic evaluation
4

1 回答 1

10

显示自依赖错误是因为它实际上尝试评估完整 URL 以获取其他参数之一。这可能是需要在 Paw 中解决的问题。

但是,您可以简单地忽略该警告,因为它仍然有效。这是一个例子:

使用 Paw 计算 URL 参数的 MD5 摘要

在您的示例中,校验和是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;
};

使用 JavaScript 脚本在 Paw 中提取请求参数

要使用 JS 计算 MD5 哈希,您需要包含一个 3rd 方库。这可以通过 npm 更容易(也更干净)完成。了解我们如何管理其他扩展中的依赖项:https ://github.com/LuckyMarmot/Paw-PythonRequestsCodeGenerator

于 2014-12-08T18:17:40.677 回答