Vue 实现登陆后长时间未点击自动退出登录

之前写前端都是用最基本的JSP,和JS代码,没有接触框架,所以有许多的困惑,不知道代码怎么写

具体的实现思路如下;当前时间 - 最后一次点击的时间 > 超时时间

当鼠标点击的时候,最后一次点击时间更新

前端不断的刷新当前时间并最后一次点击时间进行比较,若大于超时时间则判断用户是否在登录状态,若在登录状态退出登录,其中,登录状态由sessionStorage保存

 

  • 关于App.vue:App.vue是Vue项目的主组件,所有的页面都是在App.vue下进行切换的,其切换的方法主要是通过router.js下的路径进行切换的。所以当App.vue的div被点击后,更新最后一次点击时间,可以实现监听所有页面是否被监听
<template>
    <div id="app" @click="clicked">
        // TO DO
    </div>
</template>
  • 关于mounted:

1.钩子函数:钩子函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤、访问在正常情况下无法访问的消息。钩子的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统

2.相对于前端来说,钩子函数就是指所有函数执行前,我先执行了函数,即勾住我感兴趣的函数,只要它执行,我就先执行

3.与created相比:mounted主要是在模板渲染成html后,通常是初始化页面完成之后,再对html dom节点进行操作

 

  • 代码实现
export default{
    name: 'App',
    data (){
        return {
            lTime: new Date().getTime(), // 最后一次点击的时间
            ctTime: new Date().getTime(), //当前时间
            tOut: 10 * 60 * 1000   //超时时间10min
        } 
    },
    mounted () {
        window.setInterval(this.tTime, 1000)
    }

    methods:{
        clicked () {
            this.lTime = new Date().getTime()  //当界面被点击更新点击时间
        }

        tTime() {
            this.cTime = new Date().getTime()
            if (this.ctTime -this.lTime > tOut) {
                if(JSON.parse(sessionStorage.getItem('Login')) === true){
                    // 退出登录
                }
            }
        }
    }
}

这里之所以把setInterval 写在mounted而不是methods,是因为methods是方法调用的时机不一定

  • 0
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue实现判断操作自动退出登录,可以通过以下步骤来完成: 1. 在Vue登录页面中,添加一个计时器对象和一个变量来存储计时器的ID和登录状态。代码如下所示: ``` data() { return { timer: null, isLoggedIn: false } }, ``` 2. 在用户登录成功后,设置`isLoggedIn`为`true`,并启动一个定时器来判断操作时间。代码如下所示: ``` login() { // 用户登录成功后的操作... // 设置登录状态为已登录 this.isLoggedIn = true; // 启动计时器,5分钟后执行自动退出登录 this.timer = setTimeout(this.logout, 300000); }, ``` 3. 在用户的任何操作(例如点击、滚动等)之前,先清除之前的计时器,并重新设置一个计时器,以重新开始计时。代码如下所示: ``` handleUserAction() { // 清除上一次的计时器 clearTimeout(this.timer); // 启动新的计时器,重新开始计时 this.timer = setTimeout(this.logout, 300000); }, ``` 4. 实现自动退出登录的函数`logout`,在该函数中将`isLoggedIn`设置为`false`,并触发退出登录操作。代码如下所示: ``` logout() { // 设置登录状态为登录 this.isLoggedIn = false; // 执行退出登录操作... }, ``` 通过以上步骤,当用户登录后,在5分钟内没有进行任何操作时,会触发自动退出登录操作。每次用户有操作时,计时器会被清除并重新开始计时,从而可以实现判断操作自动退出登录的功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值