Navigator插件开发 - 会话到期

时间:2014-07-31 18:54:45

标签: javascript filenet-p8 ibm-content-navigator

我正在为ICN制作一个插件,并且我设法让它自动从一个文件中检索用户名/密码,这个id作为url中的参数传递。一旦用户登录,就不需要重新登录,但是在一段时间之后会话到期'将会开始,甚至在重新加载后我无法再次登录。这可能是因为我根据单个javascript对象做出了决定: ecm.model.desktop.connected

现在,如果 ecm.model.desktop.connected false ,它会尝试登录,这会很有效,直到会话到期,这显然不会设置 ecm.model.desktop.connected 为false,它仍然设置为true。因此,我希望学会一种方法来判断会话是否已经过期。

这是我的登录代码:

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();
}

1 个答案:

答案 0 :(得分:0)

我管理了一个避免会话过期的解决方法,完全使用cookie设置为在'x'分钟到期,使我自己进行某种会话。 首先,我检查cookie是否已创建,如果不是它意味着它已过期或从未创建过,所以我创建它并对logoff.do进行同步POST调用并重新加载()该站点。

一旦创建并在重新加载后,我会再次检查cookie是否存在,因为它检查ecm.model.desktop.connected是否为false或用户是否尝试使用其他ID登录。如果发生这种情况,我会让它登录,使用正确的用户名/密码对logon.do进行同步POST调用,然后重新加载()。

所有用户现在都可以访问我的插件提供的功能。