第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過 Postman 進(jìn)行 HMAC 身份驗證

通過 Postman 進(jìn)行 HMAC 身份驗證

C#
皈依舞 2021-10-23 17:01:17
我正在使用一個示例為 Web API 項目設(shè)置 HMAC 身份驗證。我試圖讓 Postman 在它的預(yù)請求腳本中構(gòu)建和發(fā)送 GET 請求。但是請求總是以 401 失敗,我不知道為什么。郵遞員預(yù)請求腳本:var AppId = "4d53bce03ec34c0a911182d4c228ee6c";var APIKey = "A93reRTUJHsCuQSHR+L3GxqOJyDmQpCgps102ciuabc=";var requestURI = "http%3a%2f%2flocalhost%3a55441%2fapi%2fv1%2fdata";var requestMethod = "GET";var requestTimeStamp = "{{$timestamp}}";var nonce = "1";var requestContentBase64String = "";var signatureRawData? = AppId + requestMethod + requestURI + requestTimeStamp +? nonce + requestContentBase64String; //checkvar signature = CryptoJS.enc.Utf8.parse(signatureRawData);var secretByteArray = CryptoJS.enc.Base64.parse(APIKey);var signatureBytes = CryptoJS.HmacSHA256(signature,secretByteArray)var requestSignatureBase64String = CryptoJS.enc.Base64.stringify(signatureBytes);postman.setGlobalVariable("key", "amx " + AppId + ":" + requestSignatureBase64String + ":" + nonce + ":" + requestTimeStamp);
查看完整描述

2 回答

?
哈士奇WWW

TA貢獻(xiàn)1799條經(jīng)驗 獲得超6個贊

這是我在 Pre-Script 中使用的代碼。它適用于任何查詢 GET、PUT、POST、DELETE。


您需要更改 AppId 和 APIKey 值,并在最后一行調(diào)整環(huán)境變量“hmacKey”的名稱。


function interpolate (value) {

    const {Property} = require('postman-collection');

    return Property.replaceSubstitutions(value, pm.variables.toObject());

}


var uuid = require('uuid');

var moment = require("moment")


var hmacPrefix = "hmac";

var AppId = "4d53bce03ec34c0a911182d4c228ee6c";

var APIKey = "A93reRTUJHsCuQSHR+L3GxqOJyDmQpCgps102ciuabc=";

var requestURI = encodeURIComponent(pm.environment.values.substitute(pm.request.url, null, false).toString().toLowerCase());

var requestMethod = pm.request.method;

var requestTimeStamp = moment(new Date().toUTCString()).valueOf() / 1000;

var nonce = uuid.v4();

var requestContentBase64String = "";

var bodyString = interpolate(pm.request.body.toString());


if (bodyString) {

    var md5 = CryptoJS.MD5(bodyString);

    requestContentBase64String = CryptoJS.enc.Base64.stringify(md5);

}


var signatureRawData  = AppId + requestMethod + requestURI + requestTimeStamp +  nonce + requestContentBase64String; //check

var signature = CryptoJS.enc.Utf8.parse(signatureRawData);

var secretByteArray = CryptoJS.enc.Base64.parse(APIKey);

var signatureBytes = CryptoJS.HmacSHA256(signature,secretByteArray);

var requestSignatureBase64String = CryptoJS.enc.Base64.stringify(signatureBytes);


var hmacKey = hmacPrefix + " " + AppId + ":" + requestSignatureBase64String + ":" + nonce + ":" + requestTimeStamp;

postman.setEnvironmentVariable("hmacKey", hmacKey);


查看完整回答
反對 回復(fù) 2021-10-23
?
侃侃爾雅

TA貢獻(xiàn)1801條經(jīng)驗 獲得超16個贊

它實際上與 Postman 提供的所有事物的可變占位符有關(guān)。在測試占位符 {{$timestamp}} 的面值時傳遞了一個有效值。當(dāng)我剝離簽名以僅從一個段開始時,我成功地進(jìn)行了身份驗證。當(dāng)然,直到我把時間戳占位符放回去。

當(dāng)我將占位符換成標(biāo)題中傳遞的實際值時,它工作正常。我只能得出結(jié)論,一定有一些我看不到的額外字符。也許在郵遞員方面創(chuàng)建簽名時。該問題擴(kuò)展到其他占位符,例如 {{$guid}}。


查看完整回答
反對 回復(fù) 2021-10-23
  • 2 回答
  • 0 關(guān)注
  • 338 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號