【问题标题】:AngularJs Checking for Session State ChangesAngularJs 检查会话状态更改
【发布时间】:2014-12-18 03:03:35
【问题描述】:

我正在尝试解决在 angularJS 中检查会话是否已更改的问题。

我有多个应用程序在共享同一会话的浏览器的不同选项卡上运行。如果用户在应用程序的一个选项卡上空闲时间过长,我想为他们显示一个选项来延长会话或注销。

但是,用户可能看不到该提示,因为他们可能正忙于使用另一个选项卡上的另一个应用程序,该应用程序与第一个选项卡上的应用程序共享会话。从第一个选项卡(用户空闲的那个)上的应用程序中注销用户会将他们从第二个选项卡(用户正在积极使用)的应用程序中注销,因为两个选项卡(尽管不同的应用程序)都共享同一会话。

如何检查会话 cookie 以查看其在任一选项卡上是否已更改?

【问题讨论】:

  • 最简单的解决方案可能是在每个应用程序中定期检查会话的计时器

标签: angularjs session cookies


【解决方案1】:

找到这个解决方案:http://hackedbychinese.github.io/ng-idle/

尝试超时。

var myVar;

function mySessionCheckFunction() {
    // cancel the timeout
    if(myVar) 
         myStopFunction();

    // restart the timeout, after 15 min of idle show a popup confirm box
    myVar = setTimeout(function(){ 
        var result =  window.confirm("Want to extend your session?"); 
        // result will be true or false
    }, 1000 * 60 * 15);
}

function myStopFunction() {
    clearTimeout(myVar); // clear the timeout
}

HTML:

<body onmousemove="mySessionCheckFunction()"> </body>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    • 2014-11-08
    • 2011-11-19
    • 1970-01-01
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多