2014-12-08 88 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