Pergunta

Eu estou trabalhando em um plugin para o RIC e eu consegui ter que iniciar sessão automaticamente recuperar o nome de utilizador/palavra-passe a partir de um arquivo por um id, que é passado como parâmetro na url.Uma vez que um utilizador tem sessão iniciada, não será necessário relog, no entanto, após algum tempo a "expiração de sessão' vai chutar e mesmo depois de recarregar eu não conseguir fazer o login novamente.Isso pode ser devido ao fato de que eu estou baseando a minha decisão em um único objeto de javascript: ecm.modelo.área de trabalho.conectado.

Agora se ecm.modelo.área de trabalho.conectado é falso ele vai tentar fazer logon no, isso funciona bem, até a expiração da sessão, que aparentemente não define o ecm.modelo.área de trabalho.conectado para false, é ainda definida como true.Então eu estou esperando para aprender uma maneira de saber se a sessão expirou.

Este aqui é o meu código de início de sessão:

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();
}
Foi útil?

Solução

Eu consegui uma solução, evitando a expiração da sessão inteiramente usando um cookie definido para expirar em " x " minutos, tornando-se uma espécie de sessão da minha própria.Primeiro eu verificar se o cookie é criado, se ele não significa que ele expirou ou nunca foi criado, em primeiro lugar, para eu criá-lo e fazer um POST síncronas chamada para a sessão.fazer e reload() o site.

Uma vez criado e depois de recarregar verificar se o cookie existe, mais uma vez, uma vez que não eu verificar se o ecm.modelo.área de trabalho.conectado é falso ou que o usuário está tentando fazer logon com um ID diferente.Se isso acontecer eu vou ter de registo em fazer um POST síncronas chamada para o início da sessão.fazer com o bom nome de utilizador/palavra-passe e, em seguida, recarregar().

Tudo feito, o usuário tem agora acesso a recursos oferecidos pelo meu plugin.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top