我写了个网页(需要登录),如何设置在用户一段时间不操作后退出登录

yepp13 2019-03-13 03:45:22
我写了个网页(需要登录),如何设置在用户一段时间不操作后退出登录
...全文
2601 55 打赏 收藏 转发到动态 举报
写回复
用AI写文章
55 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
cookie和session都可以
lyxleo 2019-03-17
  • 打赏
  • 举报
回复
我不太清楚,你那个是不是JS页?如果是的话,你可以检测一下,鼠标是不是经常被按下?如果每按下一次鼠标就更新一次Cookie(如果无法更改失效时间就删掉Cookie再创建新Cookie),等这个cookie到一定时间的时候就自动退出,可以开启一个线程来控制这个死循环。你可以试试,我没试过。你可以看看这个网页:https://jingyan.baidu.com/article/67508eb4d741fe9cca1ce4cb.html
冉义 2019-03-16
  • 打赏
  • 举报
回复
session默认三十分钟内无操作自动退出鸭
weixin_44760703 2019-03-15
  • 打赏
  • 举报
回复
不晓得记住<em>用户</em>名:下次再<em>登录</em>网站时,不用重复输入<em>用户</em>名和密码
/*空山*/ 2019-03-15
  • 打赏
  • 举报
回复
引用 40 楼 yepp13 的回复:
[quote=引用 39 楼 -Jie°的回复:][quote=引用 38 楼 yepp13 的回复:] [quote=引用 37 楼 -Jie°的回复:][quote=引用 36 楼 yepp13 的回复:] 感谢各位大神,系统推送的这个比较适合我 https://blog.csdn.net/sfq_bluesky/article/details/78623052
其实很多都是操作后再判断的吧,许多大型网站也是长时间不操作后,再操作就重新登陆[/quote] 这个不知道怎么写呢[/quote] 有点思路了,但不好描述[/quote] 那就把代码写出来啊[/quote] 我是用的MVC,在身份验证过滤器里
/// <summary>
        /// 用来获取上一个页面
        /// </summary>
        public static string LastPage;
        /// <summary>
        /// 当AuthorizeCore返回false时执行
        /// </summary>
        /// <param name="filterContext"></param>
        protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
        {
            LastPage = filterContext.HttpContext.Request.UrlReferrer != null ? filterContext.HttpContext.Request.UrlReferrer.ToString() : "";
            //根据需要添加
            filterContext.HttpContext.Response.Redirect("/Home/Login");

        }
登陆成功后判断一下LastPage,如果不等于"",返回给前台,然后window.history.go(-1);
yepp13 2019-03-15
  • 打赏
  • 举报
回复
引用 49 楼 kuanhuayu的回复:
一個頁面30分鐘的操作時間夠多了,只要換頁面秒數就會重置,如果覺得不妥,最多加入 $(a).on('mousedown',(e)=>{ $('timeout').text(0); }); $("[type='text']").on('keydown',(e)=>{ $('timeout').text(0); }); 等 event 監控就差不多了
我还是觉得在页面添加鼠标和键盘监听事件比较实用 https://blog.csdn.net/sfq_bluesky/article/details/78623052
yepp13 2019-03-15
  • 打赏
  • 举报
回复
你认为哪个方法比较好?
亦鑫 2019-03-15
  • 打赏
  • 举报
回复
占个楼,跟着大神们一起学
梅子酒㏄ 2019-03-15
  • 打赏
  • 举报
回复
z最需要这种的教程,谢谢
纵马饮白虹 2019-03-15
  • 打赏
  • 举报
回复
JS设定时,时间到了就退出登录,
监控键盘和鼠标操作,有操作就清掉重新设置定时任务
qq_39860541 2019-03-14
  • 打赏
  • 举报
回复
这个是需要设置管理权限的。
程序员beige 2019-03-14
  • 打赏
  • 举报
回复
引用 3 楼 yepp13 的回复:
[quote=引用 1 楼 低调是种无声的高调的回复:]自己搜,js设置会话过期时间
设置cookie过期时间的话,到时间了,用户在操作也会退出登录啊[/quote] 要的不就这效果?
麦草CMS 2019-03-14
  • 打赏
  • 举报
回复

function SetCookie(c_name,value,expireminutes) {
var exdate=new Date();
var expires = expireminutes ? ";expires=" + setTime(exdate.getTime() + expireminutes * 60 * 1000).toGMTString() : ""; //设置过期时间 expireminutes=1 --> 1分钟过期
document.cookie=c_name+ "=" +value+ expires + ";path=\\");
}
大致就这样,反正就是你这个expireminutes==null有问题
麦草CMS 2019-03-14
  • 打赏
  • 举报
回复
引用 15 楼 yepp13 的回复:
[quote=引用 14 楼 丰云的回复:][quote=引用 4 楼 yepp13 的回复:]
[quote=引用 2 楼 丰云的回复:]cookie有过期时间,session也有过期时间,多看下web原理吧

我设置过cookie和session的过期时间,好像用户在操作也会过期,我想做的是用户在操作的话,过期时间不生效,不操作过一定时间清除cookie或session[/quote]
实际项目中,很少用cookie来管理登录验证,都是用的session,比较安全。

session的过期时间,是跟用户的使用相关的,在过期时间内操作,这个时间本身会自动顺延。

如果你的过期时间没有自动顺延,要么是你搞错了,要么是你的代码把时间写死了[/quote]
sessionStorage.setItem(key,value)这样设置有问题吗,我设过没看到它会过期呢[/quote]
session一般是指服务端的session如php中的session,不是特指js中的sessionStorage。不过无论是session,还是cookie都是基于客户端(说直白点就是浏览器),session也需要在浏览器的cookie中保存一个标识,不过是服务端代码自动保存,不需要你操作什么。
function SetCookie(c_name,value,expireminutes) {
var exdate=new Date();
var expires = expireminutes ? ";expires=" + exdate.getTime() + expireminutes * 60 * 1000 : ""; //设置过期时间 expireminutes=1 --> 1分钟过期
document.cookie=c_name+ "=" +value+ expires + ";path=\\");
}

A.  勇 2019-03-14
  • 打赏
  • 举报
回复
学习学习,多看多学习。
yepp13 2019-03-14
  • 打赏
  • 举报
回复
引用 14 楼 丰云的回复:
[quote=引用 4 楼 yepp13 的回复:] [quote=引用 2 楼 丰云的回复:]cookie有过期时间,session也有过期时间,多看下web原理吧
我设置过cookie和session的过期时间,好像用户在操作也会过期,我想做的是用户在操作的话,过期时间不生效,不操作过一定时间清除cookie或session[/quote] 实际项目中,很少用cookie来管理登录验证,都是用的session,比较安全。 session的过期时间,是跟用户的使用相关的,在过期时间内操作,这个时间本身会自动顺延。 如果你的过期时间没有自动顺延,要么是你搞错了,要么是你的代码把时间写死了[/quote] sessionStorage.setItem(key,value)这样设置有问题吗,我设过没看到它会过期呢
丰云 2019-03-14
  • 打赏
  • 举报
回复
引用 4 楼 yepp13 的回复:
[quote=引用 2 楼 丰云的回复:]cookie有过期时间,session也有过期时间,多看下web原理吧
我设置过cookie和session的过期时间,好像用户在操作也会过期,我想做的是用户在操作的话,过期时间不生效,不操作过一定时间清除cookie或session[/quote] 实际项目中,很少用cookie来管理登录验证,都是用的session,比较安全。 session的过期时间,是跟用户的使用相关的,在过期时间内操作,这个时间本身会自动顺延。 如果你的过期时间没有自动顺延,要么是你搞错了,要么是你的代码把时间写死了
kuanhuayu 2019-03-14
  • 打赏
  • 举报
回复
一個頁面30分鐘的操作時間夠多了,只要換頁面秒數就會重置,如果覺得不妥,最多加入 $(a).on('mousedown',(e)=>{ $('timeout').text(0); }); $("[type='text']").on('keydown',(e)=>{ $('timeout').text(0); }); 等 event 監控就差不多了
yepp13 2019-03-14
  • 打赏
  • 举报
回复
引用 47 楼 kuanhuayu的回复:
<timeout></timeout> $('timeout').text('1800'); setInterval(function(){ var to = Number($('timeout').text())-1; $('timeout').text(to); if(to<=0){ alert('閒置超過 30 分,自動登出!'); changePage(home_url + "m/login/out"); } }, 1000);
你这是不管用户死活,强制退出啊
kuanhuayu 2019-03-14
  • 打赏
  • 举报
回复
<timeout></timeout> $('timeout').text('1800'); setInterval(function(){ var to = Number($('timeout').text())-1; $('timeout').text(to); if(to<=0){ alert('閒置超過 30 分,自動登出!'); changePage(home_url + "m/login/out"); } }, 1000);
加载更多回复(35)

87,995

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧