Mam wezwanie Uwierzytelnij wiadomości do serwera, który wygląda tak:Postman pre-prośba skrypt wykonywany po żądaniu
http://localhost/ServiceName/AuthenticateUser
z ciałem wysłanego tak:
{
"userCredentials":"{{securityToken}}"
}
zawsze mam aby wykonać to połączenie uwierzytelniające dwa razy w Postmanie, aby mój globalny zmienny 'securityToken' został poprawnie wypełniony i użyty następnie do następnych wywołań do Uwierzytelniania, więc wygląda na to, że skrypt poprzedzający żądanie działa po OPAKOWANIU, czy jest to zestaw Globalnych vars? w skryptach poprzedzających żądanie nie są łatwo dostępne do bieżącego wniosku?
Po pierwszym uruchomieniu serwer zwraca błąd logowania i następnym razem, gdy loguje się poprawnie.
Co robię źle?
Oto sript pre-request:
// 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);
});
Czy to możliwe, że na początkowym wywołaniu jest błąd gdzieś po drodze. Miałem podobny problem, gdy wydawało się, że skrypt pre-request nie działa i okazało się, że po stronie serwera moja usługa nie była poprawnie aktywowana. Czy próbowałeś narzędzia takiego jak Fiddler, aby sprawdzić odpowiedź na twoją początkową prośbę? – GargantuanTezMaximus
@GartuanTezMaximus nie, śledząc kod serwera, wywołanie jest naprawdę wykonane z wcześniejszą wartością parametru i wykonuje polecenie OK. – zukanta