gpt4 book ai didi

javascript - 请求后执行的 postman 预请求脚本

转载 作者:行者123 更新时间:2023-12-04 02:15:12 25 4
gpt4 key购买 nike

我有一个对服务器的 Authenticate post 调用,如下所示:

http://localhost/ServiceName/AuthenticateUser

像这样发送的正文:
{
"userCredentials":"{{securityToken}}"
}

我总是必须在 Postman 中执行两次此 Authenticate 调用,以正确填充我的全局 var 'securityToken',然后用于下一次对 Authenticate 的调用,所以看起来预请求脚本实际上是在脚本之后运行的,或者是预请求脚本中设置的全局变量不适用于当前请求?

我第一次运行这个服务器返回一个登录错误,下次它登录正常。

我究竟做错了什么?

这是预请求脚本:
// Import the CryptoJS library with jQuery
$.when(
$.getScript( "http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/md5.js" ),
$.getScript( "http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js" ),

$.Deferred(function( deferred ){
$( deferred.resolve );
})
).done(function(){

//The scripts are all loaded
var api = {

connection: {

aesIV: 'blabla',
aesKey: 'secretNoTellingYou'
}
}

var aesIV = CryptoJS.enc.Hex.parse(api.connection.aesIV);
var aesKey = CryptoJS.enc.Utf8.parse(api.connection.aesKey);

if (!CryptoJS || !CryptoJS.AES || !CryptoJS.MD5) {
alert('CryptoJS AES and MD5 Library Must Be Loaded');
}

var encrypt = function (text) {
var encrypted = CryptoJS.AES.encrypt(text, aesKey, { iv: aesIV });
return encrypted;
};

var encryptedUserCode = encrypt(globals["userCode"]).toString();
var md5Password = CryptoJS.MD5(globals["password"]).toString().toUpperCase();
var encryptedPassword = encrypt(md5Password.toString());
var token = SomeFunctionToCreateToken(encryptedUserCode , encryptedPassword);

postman.setGlobalVariable('securityToken', token);

});

最佳答案

实际上对我来说,一旦我用现在集成的库替换脚本导入,问题就消失了:

//The scripts are all loaded
var api = {

connection: {

aesIV: 'blabla',
aesKey: 'secretNoTellingYou'
}
}

var aesIV = CryptoJS.enc.Hex.parse(api.connection.aesIV);
var aesKey = CryptoJS.enc.Utf8.parse(api.connection.aesKey);

if (!CryptoJS || !CryptoJS.AES || !CryptoJS.MD5) {
alert('CryptoJS AES and MD5 Library Must Be Loaded');
}

var encrypt = function (text) {
var encrypted = CryptoJS.AES.encrypt(text, aesKey, { iv: aesIV });
return encrypted;
};

var encryptedUserCode = encrypt(globals["userCode"]).toString();
var md5Password = CryptoJS.MD5(globals["password"]).toString().toUpperCase();
var encryptedPassword = encrypt(md5Password.toString());
var token = encryptedUserCode + "|" + encryptedPassword;

postman.setGlobalVariable('securityToken', token);

关于javascript - 请求后执行的 postman 预请求脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31797589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com