2016-07-13 54 views
1

Ich versuche, von einem Clientskript zu einem NetSuite-RESTlet zu gelangen, ohne die Authentifizierungsdaten fest zu codieren. In der NetSuite-Dokumentation heißt es: "Für ein RESTlet, das von einem von NetSuite gehosteten Client aufgerufen wird, müssen Sie keine Authentifizierungsinformationen in der HTTP-Anforderung übergeben. Es findet eine Überprüfung auf eine gültige NetSuite-Sitzung (JSESSIONID) statt und diese vorhandene Sitzung wird wiederverwendet." Ein anderes Dokument von SuiteAnswers sagt: "Wie für die zweite Option [JSESSIIONID-Cookie verwenden], wird dies normalerweise für das Senden mehrerer Sitzungen verwendet. Dafür muss jedoch mindestens eine NLAuth-Authentifizierung durchgeführt werden."NetSuite RESTlet JSESSIONID Authentifizierung

Unnötig zu sagen, ich bin verwirrt. Ich habe keine Beispiele für die Verwendung von JSESSIONID für die RESTlet-Authentifizierung gesehen. Ich habe es selbst ausprobiert und es funktioniert nicht.

function getCookie(name) { 
     var re = new RegExp(name + "=([^;]+)"); 
     var value = re.exec(document.cookie); 
     return (value != null) ? unescape(value[1]) : null; 
    } 

    var sessionId = getCookie("JSESSIONID"); 

    var headers = {"Cookie": "JSESSIONID=" + sessionId , 
      "Content-Type": "application/json"}; 

Ich habe die sessionId Variable überprüft und es sieht gut aus. Es funktioniert gut, wenn ich die Authentifizierung fest codiere und nlAuth benutze. Ich bin nicht sicher, warum das nicht funktioniert, wenn die zweite Aussage oben aus der Dokumentation nicht korrekt ist. Hat jemand anderes ein NetSuite-RESTlet nur mit der JSESSIONID authentifiziert?

Ich habe das herausgefunden. Es ist möglich und Sie müssen eine relative URL verwenden. Ich habe diesen Rat immer wieder vermisst, als ich nach Antworten suchte.

+0

Poste deinen "Ich habe das herausgefunden" Teil als Antwort und wähle es als die richtige Antwort für zukünftige Leser. – erictgrubaugh

Antwort

0

Ich habe das herausgefunden. Es ist möglich und Sie müssen eine relative URL verwenden. Ich habe diesen Rat immer wieder vermisst, als ich nach Antworten suchte.