2014-12-08 93 views
3

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

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

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

对于“URL参数”选项卡“ – 2014-12-08 18:24:05

回答

9

显示了自我依赖性错误,因为它实际上会尝试评估完整的URL以获取其他参数之一。这可能需要在Paw中修复。

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

Calculate a MD5 digest of URL parameters with 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; 
}; 

Use a JavaScript script to extract request parameters in Paw

要计算使用MD5哈希JS,你需要有一个第三方库。这可以通过npm更容易(也更干净地)完成。看看我们如何管理其他扩展中的依赖关系:https://github.com/LuckyMarmot/Paw-PythonRequestsCodeGenerator

+0

”参数列表总是不同,并且将它们全部列在“输入”字段中并不舒服,因此写入更容易自己的动态值,依赖于其他(不是校验和)字段值。 – silent 2014-12-08 20:14:22

+0

刚刚更新了我的答案,添加了一个JavaScript代码 – 2014-12-08 21:56:47

+0

噢,它正在工作,警告只是为了通知。谢谢 – silent 2014-12-17 07:33:23