产品要求用户登录后当关闭页面重新访问时需要保持登录状态,并且在一个月后清除登录状态重新登录。由于请求头没有使用token来判断是否登录超时,因此就在前端简单的做了一个判断,代码如下:

首先若登录成功就做个本地缓存的时间戳

const timestamp = String(new Date().getTime());
localStorage.setItem("loginTimestamp", timestamp);

然后获取缓存里的时间戳并加上30天的时间戳与当前时间进行比较

getDaysTimestamp() {let loginTimestamp = Number(localStorage.getItem("loginTimestamp")); // 缓存里拿到的时间戳if (loginTimestamp) {let outTime = 30 * 24 * 60 * 60 * 1000; // 30天的时间戳let loginTimestampTotal = loginTimestamp + outTime; // 两者相加得到新的时间戳let nowData = new Date().getTime();// 如果当前的时间戳大于或是等于登录缓存的时间戳加30天的时间戳,那么就清除本地缓存,让用户重新登录if (nowData >= loginTimestampTotal) {localStorage.clear();…………}}
},

tips:做的比较简洁,但测试过使用起来还是没有问题的。

js前端判断登录超时即清除登录状态相关推荐

  1. JS 前端 判断字符串是否相等

    js在判断字符串是不是相等时遇到问题:相同字符串不相等 使用 ==或者 ===都返回不相等. 使用:  encodeURIComponent(str)//可把字符串作为URI 组件进行编码.

  2. JS前端判断数组是几维数组

    用到了递归思路,一层一层去循环数组,下边是代码 <!DOCTYPE html> <html lang="en"> <head><meta ...

  3. js如何判断当前页面是否处于激活状态

    window.onblur = function(e){console.log("未激活状态!") } window.onfocus = function(e){console.l ...

  4. 登录拦截之后,登录页面出现在iframe的src里面

    之前搭建了一个小项目,在登录超时后返回登录页会在iframe里打开登录页面,这显然不是我想实现的效果,应该是拦截之后,登录页面在iframe的顶层页面显示,趁着今天有时间就查了一下如何解决这个bug. ...

  5. 技能学习:学习使用php(tp6框架) + vue.js,开发前端全栈网站-6.用户登录(二),token验证

    技能学习:学习使用php(tp6框架) + vue.js,开发前端全栈网站-6.用户登录(二),token验证 技能学习:学习使用php(tp6框架) + vue.js,开发前端全栈网站-1.工具和本 ...

  6. 技能学习:学习使用php(tp6框架) + vue.js,开发前端全栈网站-5.用户登录,密码的bcrypt(hash)加密与验证

    技能学习:学习使用php(tp6框架) + vue.js,开发前端全栈网站-5.用户登录,密码的bcrypt(hash)加密与验证 技能学习:学习使用php(tp6框架) + vue.js,开发前端全 ...

  7. PHP密码问题陈婷代码_登录中利用JS前端加密PHP后端解密保证数据非明文传输的安全方法...

    为什么要研究这个呢,因为我所在单位的信息管理部门在监控系统上发现有大量的明文账号(身份证号)和密码在传输,被告知这很不安全,索性就直接解决这个问题,利用JS前端加密PHP后端再加密来解决这个问题,保证 ...

  8. drcom宽带认证登录超时_开发SSO单点登录需要注意的问题

    一.单点登录系统开发需要注意的问题 1.单点登录系统需要支持jsonp请求? 单点登录系统主要是向其他系统提供用户身份验证服务,因此需要提供对外接口,而外部系统通过接口访问时,必然涉及跨域问题,因此需 ...

  9. Java调用 新浪微博API 接口发微博(包含js微博组件、springMVC新浪登录)详解

    参考自:http://www.myexception.cn/program/1930025.html https://blog.csdn.net/qq_36580777/article/details ...

最新文章

  1. 设计模式----组合模式UML和实现代码
  2. T-SQL 编码标准
  3. oce专项认证 oracle_获得Oracle认证对拓展职业前景的影响
  4. VTK:颜色边缘用法实战
  5. python OSError: [Errno 24] Too many open files | HTTPConnectionPool(host=‘‘, port=80): Max retries e
  6. html hint标签,htmlhint
  7. 【Linux】【Shell】【Basic】字符串操作
  8. Music 环形界面的算法记录
  9. jvisualvm工具
  10. c++项目实例_.NET Core CLI来启动应用程序的多个实例
  11. 计算机中硬盘驱动器安装在哪里,解决方法:在笔记本电脑中安装硬盘驱动器的步骤如何在笔记本电脑中安装硬盘驱动器...
  12. css 魔方,css 3d旋转魔方
  13. django后台管理界面美化
  14. EOS区块链技术开发(二)智能合约
  15. 【bluestacks】蓝叠模拟器hyper-v版本提示hyper-v inaccessible
  16. 巧用模板和友联类型为vc++单元测试加一利器
  17. 世界地图nameMap
  18. w ndows平板插sim卡,HUAWEI MateBookE怎么插入sim卡上网和接收短信?
  19. 使用sudo执行gcc命令的时候提示找不到命令
  20. list of freely available programming books

热门文章

  1. 天数怎么换算成月_excel表中,怎么把日期数转换成月份数呢?
  2. insmod lsmod rmmod
  3. autoconf 报错
  4. 搞懂JS的强制类型转换
  5. HTML —— 语义化标签
  6. 大家一起学数据结构之单链表
  7. 操作系统习题自用(三)
  8. Git学习之解决合并冲突
  9. F4—LVDS接口LCD显示彩图测试-2023-02-25
  10. 【数据结构C语言】二叉树的遍历