基于jwt -用户离线检测的实现思路

其实思路很简单。就是,用户与系统交互的token。token的拦截时间 - token的创建时间 = 用户与系统交互的时间差值。只要这个时间差值为负数,就判定为离线。基于此,我们每次与系统交互,都需要重新创建token,从而不断刷新token的创建时间来给下次系统判定来使用。

以上做的离线,只是告知前端用户超时需要重新登录,但是并未删除在redis中存储登录用户状态。

// 用户离线校验token =  TokenUtil.verifyRefresh(token);if(token == null) // 离线超过20分钟,不刷新令牌{
// 这里我只是讲需要重新登录的情况通过状态告知前端需要重新登录,但并未删除redis里面的用户登录状态存储。ServletUtil.renderString(response,JSONUtil.toJsonStr(HttpStatus.OFF_LIMIT_EXCEEDED));return;}
    /*** 校验token从创建时间 - 到现在超过time分钟否* * @param token * @param time 单位 min* @return*/// 按照我们的设计,用户每次携带token,校验,// 都会去更新这个token创建时间,那么直到我们有很长一次才被校验时,说明我们用户已经长期未登录了。public static boolean verify(String token,Long time){Long creteTime = Long.valueOf(parseTokenGetClaims(token, CREATE_TIME).toString());Long currentTime = System.currentTimeMillis();return time > (currentTime - creteTime )/MILLIS_MINUTE;}public static String verifyRefresh(String token){if(verify(token,10L)) // 离线没超过20min{Long userId = Long.valueOf(parseTokenGetUserId(token));return createToken(userId);  // 自动刷新令牌}return null;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/726101.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis复杂映射开发之多对多查询

多对多查询的模型 用户表和角色表的关系为,一个用户有多个角色,一个角色被多个用户使用。 多对多查询的需求:查询所有用户的同时查询出该用户对应的所有角色。 startuml !theme plain top to bottom direction skinparam linetype ortho cl…

C# 在exe中启动另外一个exe时的关闭方法

在C#中,如果你想要从一个exe程序中启动另一个exe程序,并希望在需要时能够关闭它。 一、启动外部exe程序: 使用System.Diagnostics.Process启动程序,代码如下: private void btnStart_Click(object sender, RoutedEve…

阿里云服务器使用教程_搭建网站教程_2024建站教程

使用阿里云服务器快速搭建网站教程,先为云服务器安装宝塔面板,然后在宝塔面板上新建站点,阿里云服务器网aliyunfuwuqi.com以搭建WordPress网站博客为例,来详细说下从阿里云服务器CPU内存配置选择、Web环境、域名解析到网站上线全流…

自然语言处理(NLP)—— 语言学、结构的主要任务

1. 计算语言学的任务 1.1 自然语言处理任务——句法分析任务 1.1.1 词法(Syntatic tasks:Word level) 在自然语言处理中,词法分析主要涉及到词汇层面的处理,包括形态划分、分词、切分以及词性标注等任务。 1.1.1.1 形态划分&am…

XUbuntu22.04之显示实时网速(二百一十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

智能网联各地市政策盘点

本文旨在对2023年及2024年初各地市所出台的智能网联相关政策进行全面的梳理与总结。通过与此前发布的关于2023年和2024年初各部委、省、直辖市智能网联相关政策的盘点相互呼应,力求为读者呈现一个全面、系统的政策概览。 文 | 吴冬升 全文6000字,预计阅读…

轮询--一起学习吧之架构

一、定义 轮询(Polling)是一种CPU决策如何提供周边设备服务的方式,又称“程控输出入”(Programmed I/O)。这种方式是由CPU定时发出询问,依序询问每一个周边设备是否需要其服务,有即给予服务&am…

html--3D爱心

文章目录 代码效果 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>爱心</title><style type"text/css">*{margin: 0px;border: 0px;}body{overflow: hidden;background-…

Docker-部署若依项目

文章目录 后端一、搭建局域网二、redis安装测试 三、MySQL安装四、后端项目放入位置及使用Dockerfile自定义镜像后端项目放入位置 前端配置检查各个端口是否启动nginx部署 首先得先把内部的文件给删除清空 docker images–查看有哪些文件 docker rmi -f ID–删除ID 后端 一、…

腾讯QQ推出AI聊天搭子;零一万物01AI宣布开源Yi-9B模型

&#x1f989; AI新闻 &#x1f680; 腾讯QQ推出AI聊天搭子&#xff0c;进军AI对话领域 摘要&#xff1a;腾讯QQ合作筑梦岛和混元助手&#xff0c;推出了AI对话功能“AI聊天搭子”&#xff0c;提供多种虚拟角色与用户实时互动&#xff0c;目前已开启测试。此外&#xff0c;抖…

STM32/GD32——I2C通信协议

芯片选型 Ciga Device — GD32F470系列 通讯规则 I2C协议&#xff08;或称IIC&#xff09;是由飞利浦&#xff08;现在的恩智浦半导体&#xff09;公司开发的一种通用的总线协议。它使用两根线&#xff08;时钟线和数据线&#xff09;来传输数据&#xff0c;支持多个设备共享…

智能设备 app 设计 —— 蓝蓝 UI 设计公司

今天给大家推荐是智能设备app设计&#xff0c;随着智能设备的逐渐普及随之操作app也越来越多&#xff0c;希望能给大家带来灵感 #日常灵感 #创意设计#UI提升#ui设计#app #设计案例分享|#设计 #产品设计#产品设计#设计灵感 #B端产品经理 #ui #产品 #美工 #交互 #产品经理 #开发 …

乐优商城(九)数据同步

1. 项目问题分析 现在项目中有三个独立的微服务&#xff1a; 商品微服务&#xff1a;原始数据保存在 MySQL 中&#xff0c;从 MySQL 中增删改查商品数据。搜索微服务&#xff1a;原始数据保存在 ES 的索引库中&#xff0c;从 ES 中查询商品数据。商品详情微服务&#xff1a;做…

python75-Python的函数参数,关键字(keyword)参数

在定义Python函数时可定义形参(形式参数的意思)这些形参的值要等到调用时才能确定下来,由函数的调用者负责为形参传入参数值。简单来说,就是谁调用函数,谁负责传入参数值。 关键字(keyword)参数 Python函数的参数名不是无意义的,Python 允许在调用函数时通过名字来传入参…

mysql 查看数据库、表的命令

查看所有的数据库 1.show databases; 2.select schema_name from information_schema.schemata\G \G 。以纵向报表的形式显示结果&#xff0c;方便查看。 查看mysql数据库的运行状态 status 选择数据库 use 库名 例 use TestDb 查看数据库中的表 show tables 查看表结构 de…

怎么在图片上直接编辑文字?3个方法教你轻松编辑

怎么在图片上直接编辑文字&#xff1f;随着技术的飞速发展&#xff0c;图片编辑已经成为我们日常生活和工作中不可或缺的一部分。在图片上直接编辑文字&#xff0c;不仅能够添加说明和标注&#xff0c;提高信息的传达效率&#xff0c;还能够增强图片的美观和设计感&#xff0c;…

qt练习案例

记录一下qt练习案例&#xff0c;方便学习qt知识点 基本部件 案例1 需求&#xff0c;做一个标签&#xff0c;显示"你好"知识点&#xff0c;QLabel画面 4. 参考&#xff0c;Qt 之 QLabel 案例2 需求&#xff0c;做一个标签&#xff0c;显示图片 知识点&#xff0c;…

在Linux/Ubuntu/Debian中用fdisk分区mkfs格式化

fdisk 是一个命令行实用程序&#xff0c;用于在类 Unix 操作系统&#xff08;包括 Linux&#xff09;中对磁盘进行分区。 如果你想使用“fdisk”格式化 USB 驱动器&#xff0c;通常会先对驱动器进行分区&#xff0c;然后使用特定的文件系统格式化分区。 以下是有关如何在 Linu…

c++初阶------类和对象(六大默认构造函数的揭破)

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

1.JavaWebJava基础加强[万字长文]-Junit、反射、注解核心知识点梳理

导语&#xff1a; 一、Junit单元测试 1.Junit测试概述 2.Junit使用步骤 3.Junit_Before&After 二、反射 1.反射概述 2.反射获取字节码Class对象的三种方式 3.Class对象功能概述 4.Class对象功能_获取Field 5.Class对象功能_获取Constructor 6.Class对象功能_获取…