是否可以确定用户是否处于非活动状态,并在使用angularjs说不活动10分钟后自动注销它们?
我试图避免使用jQuery,但我找不到任何教程或文章如何做到这一点在angularjs。任何帮助将不胜感激。
我写了一个名为Ng-Idle的模块,在这种情况下可能对你有用。
Here is the page which contains instructions and a demo.
基本上,它有一个服务,启动一个定时器的空闲时间,可以中断用户活动(事件,如点击,滚动,打字)。您还可以通过调用服务上的方法手动中断超时。如果超时没有中断,它会倒计时一个警告,您可以提醒用户他们将被注销。如果他们在警告倒计时到达0之后没有响应,则广播一个事件,您的应用程序可以响应。在你的情况下,它可以发出一个请求来终止他们的会话并重定向到登录页面。
此外,它有一个保持活动的服务,可以ping一些URL间隔。这可以由您的应用程序使用,以保持用户的会话活动时,他们是活动的。默认情况下,空闲服务与保活服务集成,如果它们变为空闲,则挂起ping,并在返回时恢复它。
所有你需要开始的信息是在site与wiki的更多细节。但是,这里是一个片段的配置显示如何签署,当他们超时。
angular.module('demo',['ngIdle']) // omitted for brevity .config(function(IdleProvider,KeepaliveProvider) { IdleProvider.idle(10*60); // 10 minutes idle IdleProvider.timeout(30); // after 30 seconds idle,time the user out KeepaliveProvider.interval(5*60); // 5 minute keep-alive ping }) .run(function($rootScope) { $rootScope.$on('IdleTimeout',function() { // end their session and redirect to login }); });