[英]How to use SHA-1 dynamic key in Postman
我正在嘗試使用Postman發送一個GET http請求,其中包含一個參數,該參數是通過獲取完整的請求查詢字符串(在URL編碼后,URL中問號右側的所有內容)動態生成的,連接先前分配的共享密鑰,然后執行生成的字符串的SHA-1哈希。
我會使用預請求腳本來實現這一目標。
謝謝。
我實際上找到了一個解決方案,並想分享它。
var params = [ ["client_id", "222"] ,["account_id", ""] ]; // Build the request body string from the Postman request.data object var requestBody = ""; var firstpass = true; for(var i=0;i < params.length; i++) { if(!firstpass){ requestBody += "&"; } requestBody += params[i][0] + "=" + params[i][1]; firstpass = false; postman.setGlobalVariable(params[i][0], params[i][1]); } requestBody += postman.getEnvironmentVariable("sharedSecretKey"); postman.setGlobalVariable("requestBody", requestBody); var mac = ""; if(requestBody){ // SHA1 hash mac = CryptoJS.SHA1(requestBody); } postman.setGlobalVariable("mac", mac);
然后我只需要在網址中設置參數:{{baseUrl}} / get?client_id = {{client_id}}&account_id = {{account_id}}&mac = {{mac}}
其中{{baseUrl}}是一個環境變量而{{client_id}},{{account_id}}是全局變量
希望它對某人有所幫助。
謝謝。
受此答案的啟發,我使用以下Postman預請求腳本來創建請求的SHA1哈希。
請注意, request.data
是一個隱含變量, CryptoJS
庫由Postman Sandbox提供, 用於預請求腳本 。
const hash = CryptoJS.HmacSHA1(request.data, 'yourSecret');
pm.globals.set('hash', hash);
您現在可以使用{{hash}}
語法將哈希值引用為郵遞員全局變量。
我的目的是模擬GitHub Webhooks API提供的X-Hub-Signature
標頭,因為我的Web服務驗證所有webhook有效負載以匹配簽名。 所以對我來說測試我的網絡服務,我還需要郵遞員來生成有效的簽名標題。
以下是對上面代碼片段的修改,用於生成X-Hub-Signature
請求標頭值。
GITHUB_WEBHOOK_SECRET
添加到我創建GitHub應用程序時指定的值。 const hash = CryptoJS.HmacSHA1(
request.data,
pm.environment.get('GITHUB_WEBHOOK_SECRET')
);
pm.globals.set('X-HUB-SIGNATURE', 'sha1=' + hash);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.