我在angularjs建立了一个网站。 现在我需要确保如果用户在执行LOGIN超过10分钟后没有使用过网站,则应该自动注销。此外,应清除与网站关联的本地存储。 我还需要避免URL重写。 我是angularjs的新手。 我听说会议必须完成这些目标。 我需要一个很好的建议以及获得参考的链接。
答案 0 :(得分:0)
我建议使用此http://hackedbychinese.github.io/ng-idle/ 请查看Auto logout with Angularjs based on idle user以获取更多参考!
答案 1 :(得分:0)
在.config运行后在app.js中声明此代码,10分钟后它将重定向到登录页面
var d = new Date();
var n = d.getTime(); //n in ms
$rootScope.idleEndTime = n+(10*60*1000); //set end time to 10 min from now
//console.log(idletime);
$document.find('body').on('mousemove keydown DOMMouseScroll mousewheel mousedown touchstart', checkAndResetIdle); //monitor events
function checkAndResetIdle() //user did something
{
var d = new Date();
var n = d.getTime(); //n in ms
if (n>$rootScope.idleEndTime)
{
$document.find('body').off('mousemove keydown DOMMouseScroll mousewheel mousedown touchstart'); //un-monitor events
//$location.search('IntendedURL',$location.absUrl()).path('/login'); //terminate by sending to login page
alert('Session ended due to inactivity');
$location.path("/login");
//console.log($location.path());
$rootScope.$apply();
}
else
{
$rootScope.idleEndTime = n+(10*60*1000); //reset end time
}
}
答案 2 :(得分:0)
您还可以使用angular-activity-monitor
完成。
[ActivityMonitor]是一个简单的服务,它将根据用户的DOM活动发出几个事件。它还允许您在后台“保持项目存活”,只要用户被视为“活动”。
angular.module('myModule', ['ActivityMonitor']);
MyController.$inject = ['ActivityMonitor'];
function MyController(ActivityMonitor) {
// how long (in seconds) until user is considered inactive
ActivityMonitor.options.inactive = 900;
// What to do once user is considered inactive
ActivityMonitor.on('inactive', function() {
alert("You're inactive");
});
}