ich ein Authentifizieren Post Aufruf an den Server haben, die wie folgt aussieht:Postman Vorbitte Skript nach dem Antrag der Ausführung
http://localhost/ServiceName/AuthenticateUser
mit einem Körper so geschickt:
{
"userCredentials":"{{securityToken}}"
}
ich immer Um diesen Authenticate-Aufruf in Postman zweimal auszuführen, wird meine globale Variable 'securityToken' richtig ausgefüllt und danach für die nächsten Aufrufe von Authenticate verwendet. Es scheint also, dass das Vorab-Anforderungsskript tatsächlich NACH dem Skript ausgeführt wird oder Global Vars gesetzt ist In Voranfragen Skripts sind nicht ohne weiteres verfügbar zur aktuellen Anfrage?
Das erste Mal, wenn ich dies ausführe, gibt der Server einen Login-Fehler zurück und beim nächsten Mal meldet es sich gut an.
Was mache ich falsch?
Hier ist die Vorbitte sript:
// 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);
});
Könnte es möglich sein, dass auf dem ersten Aufruf ein Fehler irgendwo auf dem Weg ist. Ich hatte ein ähnliches Problem, bei dem es so aussah, als würde das Vorab-Anforderungsskript nicht ausgeführt und es stellte sich heraus, dass mein Dienst auf der Serverseite nicht korrekt aktivierte. Haben Sie ein Tool wie Fiddler ausprobiert, um die Antwort auf Ihre erste Anfrage zu überprüfen? – GargantuanTezMaximus
@GartuanTezMaximus nein, der Server-Code verfolgt, der Aufruf ist wirklich mit dem vorherigen Parameterwert gemacht und schließt OK ab. – zukanta