localStorage实现超过一分钟重新验证效果

具体要求:在进行某个操作前先进行权限校验,校验通过后一分钟内无需登录,超过一分钟重新进行验证;

原计划想着把校验密码先存起来,然后设置有效期一分钟。一分钟后自动清空当我进行操作时先查看是否存储登录密码如果存入无需验证。但是我找不到设置有效期一分钟的方法,因此改为存储权限密码的同时存入时间戳,当我进行某种操作时获取当前时间戳和从存储中取出原时间戳对比是否大于一分钟。

 1  let obj= localStorage.getItem('obj')
 2  let date, nowDate
 3  if(obj) {
 4    date = JSON.parse(obj).timestamp
 5    nowDate = new Date().getTime()
 6 }
 7 if(!obj|| nowDate - date > 1000 * 60) {
 8     localStorage.removeItem(obj)
 9     this.$q.dialog({
10         message: '请输入密码验证'
11     }).onOk(data => {
12         let obj= {
13             name: data,
14             timestamp: new Date().getTime()
15         }
16         localStorage.setItem('obj', JSON.stringify(obj))
17         callback()
18      })
19 } else {
20     callback()
21 }                

最后,无论需不需要验证都会进入下一步骤,利用回调函数实现这一功能

1 let _this = this 
2 this.test(() => {
3    _this.isShow = true
4   //下一步步骤
5 })

 

posted @ 2020-09-17 16:48  进击的木头ya  阅读(167)  评论(0)    收藏  举报