Domanda

Sto lavorando su un plugin per ICN e sono riuscito a farlo registrare automaticamente a recuperare il nome utente / password da un file da un ID che viene passato come parametro nell'URL.Una volta che un utente ha effettuato l'accesso, non sarà necessario stipulare, tuttavia, dopo un po 'di tempo, la "scadenza della sessione" calò e anche dopo aver ricaricato non riesco a farlo accedere nuovamente.Ciò potrebbe essere dovuto al fatto che sto basando la mia decisione su un singolo oggetto JavaScript: Ecm.model.desktop.Connected .

In questo momento se ecm.model.desktop.connected è false proverà ad accedere, funziona bene fino alla scadenza della sessione, che apparentemente non imposta il ECM.Model.Desktop.Connected To False, è ancora impostato su TRUE.Quindi sperando di imparare un modo da dire se la sessione è scaduta.

Questo qui è il mio codice di accesso:

if (ecm.model.desktop.connected == false || ecm.model.desktop.userId != loginConfig[loginID].username) {
     var http2 = new XMLHttpRequest();
     var url2 = "/navigator/logon.do";
     var params2 = "userid=" + loginConfig[loginID].username + "&password=" + loginConfig[loginID].password;
     http2.open("POST", url2, false);
     http2.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     http2.onreadystatechange = function() {//Call a function when the state changes.
          if (http2.readyState == 4 && http2.status == 200) {

          }
     };
     http2.send(params2);
     window.location.reload();
}
.

È stato utile?

Soluzione

Ho gestito una soluzione alternativa a evitare la scadenza della sessione interamente utilizzando un set di cookie per scadere in 'x' minuti facendo una sorta di sessione del mio. Prima controllo se viene creato il cookie, se non è significa che è scaduto o non è mai stato creato in primo luogo, quindi lo creo e crea una chiamata sincrona a Logoff.do e ricarica () il sito. Una volta creato e dopo il ricaricamento controllo se il cookie esiste ancora una volta, dal momento che controllo se ECM.Model.Desktop.Connected è falso o l'utente sta tentando di accedere con un ID diverso.Se ciò si verifica, lo farò accedere a creare una chiamata sincrona per Logon.do con il nome utente / password corretti e quindi ricaricare ().

Tutto fatto L'utente ha ora accesso alle funzioni offerte dal mio plugin.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top