簡體   English   中英

如何在Postman中使用SHA-1動態密鑰

[英]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}}語法將哈希值引用為郵遞員全局變量。


創建X-Hub-Signature Header,如GitHub API Webhook請求

我的目的是模擬GitHub Webhooks API提供的X-Hub-Signature標頭,因為我的Web服務驗證所有webhook有效負載以匹配簽名。 所以對我來說測試我的網絡服務,我還需要郵遞員來生成有效的簽名標題。

以下是對上面代碼片段的修改,用於生成X-Hub-Signature請求標頭值。

  1. 在GitHub中,我為我的GitHub App設置了一個webhook秘密

github webhook的秘密

  1. 在Postman中,我創建了一個環境 ,並將key = value對GITHUB_WEBHOOK_SECRET添加到我創建GitHub應用程序時指定的值。

郵差環境變量

  1. 在Postman中,我使用了以下預請求腳本。 它將計算的哈希設置為全局變量。
const hash = CryptoJS.HmacSHA1(
    request.data,
    pm.environment.get('GITHUB_WEBHOOK_SECRET')
);
pm.globals.set('X-HUB-SIGNATURE', 'sha1=' + hash);
  1. 在Postman中,我將全局哈希變量引用為我的請求中的標頭,就像GitHub Webhooks API一樣。

郵差請求標題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM