JWT 刷新 token

JWT Token刷新方案 JWT TOKEN刷新方案 环境 Springboot,Redis 需求 由于是前后端分离的项目,需要使用JWT Token来校验用户信息,保证用户信息安全可靠,不会被重放攻击。 问题 JWT Token如不设置有效期,刷新周期,他人一旦拿到Token就可以模拟重复访问,非常不安全。因此这就需要Token的生命周期尽可能不要太久,这就牵扯到如何刷新Token的问题。 解决方案 设计思路 Token... 阅读详情

项目使用的shiro+jwt来做整套权限加请求安全验证,但是jwt的token自己没有超时刷新机制,所以这里简单贴出解决方案。

解决方案:通过过期时间验证,如果 在你允许的期限内重新生成token. 废话不多刷直接上代码。方法并不完美,如果有更好的方案希望大神们能告知一下(可以改成捕捉jwt抛出的超时异常)。

创建token

 /**
     * 生成签名
     *
     * @param params  你的参数 ,可以是多个。根据你的业务需求
     * @return 加密的token
     */
    public static String sign(String params) {
        // EXPIRE_TIME : 你的有效时间。
        Date date = new Date(System.currentTimeMillis() + EXPIRE_TIME);
        // SECRET : 你的 秘匙
        Algorithm algorithm = Algorithm.HMAC256(SECRET);
        // 附带params信息
        return JWT.create()
                .withClaim("params", params)
                .withExpiresAt(date)
                .sign(algorithm);
    }

验证token 刷新 token

 /**
     * 校验token是否正确
     * @Description  : TODO
     * @param        : token
     * @param        : params  你的参数 ,可以是多个。根据你的业务需求(必须和生成签名的参数一致)
     * @return       : java.lang.String
     * @author       : Mr.Xi
     * @date         : 19-4-24 上午10:41
     */
    public static String verify(String token, String params) {
        try {
            Algorithm algorithm = Algorithm.HMAC256(SECRET);
            JWTVerifier verifier = JWT.require(algorithm)
                    .withClaim("params", params)
                    .build();
            DecodedJWT jwt = verifier.verify(token);
            return token;
        } catch (Exception exception) {
            String errorStr  = exception.getMessage();
            String[] es = errorStr.split("The Token has expired on ");
            String dateStr = es[1].substring(0,es[1].length() - 1);
            Date toDate = null;
            try {
                toDate = parseDateString(dateStr);
                // 符合条件 重新生成token
                if (toDate != null && System.currentTimeMillis() - toDate.getTime() < EXPIRE_TIME) {
                    return sign(username,userId);
                } else {
                    return "error";
                }
            } catch (ParseException e) {
                e.printStackTrace();
                return "error";
            }
        }
    }
    
    /**
     * @Description  : TODO 日期转换
     * @param        : dateStr 日期字符串
     * @return       : java.util.Date
     * @author       : Mr.Xi
     * @date         : 19-4-25 下午4:18
     */
    private static Date parseDateString (String dateStr) throws ParseException {
        SimpleDateFormat sfStart = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",java.util.Locale.ENGLISH) ;
        SimpleDateFormat sfEnd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String format = sfEnd.format(sfStart.parse(dateStr));
        return sfEnd.parse(format);
    }
使用JWT生成Token,并实现Token刷新API 一、背景 传统的网站用户认证方式严重依赖于 Cookie 。但 很多 项目是一个前后端分离的项目,我们希望前端界面的实现不受 项目API 的影响,这就要求 用户认证没有 Cookie 时也能进行。其实仔细想想,用户的认证鉴权,无非就是在访问 API 时发送一个能够识别出用户的字符串给服务端,然后服务端基于字符串查找出用户,再判断用户是否有权限使用 API 。这串字符串,我们可以将其称之为 Token。由于 rmon 的所有 API 都是基于 HTTP 协议的,而在 HTTP 协议中有一个 Authoriz 阅读详情

相关推荐

jwt的token过期刷新,过期时间

1:这种方式为在线刷新,比方说设定的token有效期为30min,那么每次访问资源时,都会在拦截器中去判断一下 token是否过期,如果没有过期就刷新token的时间为30min,反之则会重新登录,需要注意的是这种方式我是在登 录以后就将token存在了redis. //登录方法中将token存在redis String token =JwtUtil.sign(userName,user.getId()); redisUtil.set(UserConstants.PREFIX_USER_TOKEN +tok

qq_40360854的博客 8818

jwt的token如何刷新?

jwt的token如何刷新?jwt的token如何刷新?jwt的token如何刷新?jwt的token如何刷新?jwt的token如何刷新?jwt的token如何刷新?jwt的token如何刷新?jwt的token如何刷新?jwt的token如何刷新?jwt的token如何刷新?jwt的token如何刷新?

小青龙,创造,变强 5331

jwt+shiro+redis实现token的自动刷新和token的可控性

文章目录一、为何要使用jwt+shiro+redis二、AccessToken和RefreshToken2-1. Shiro + JWT实现无状态鉴权机制2-2. 关于AccessToken及RefreshToken概念说明2-3. 关于Redis中保存RefreshToken信息(做到JWT的可控性)2-4. 关于根据RefreshToken自动刷新AccessToken三、导入依赖并配置四、配置redis和实现redisUtil1.配置redis2、RedisUtil五、封装token六、编写JwtUt

zhuzi的博客 7131

JWT刷新token机制

本文介绍了JWT(JSON Web Token)的刷新机制及其实现方法。主要内容包括:为什么要使用RefreshToken,其与AccessToken的区别,安全建议以及具体代码实现。关键点在于通过短有效期的AccessToken和长有效期的RefreshToken组合,既保障安全性又提升用户体验。文章还提供了SpringBoot后端和Vue3前端的代码示例,并总结了自动续期流程和常见面试问题。实践建议包括将RefreshToken存储于服务器、使用HTTPS以及支持滑动过期等安全措施。

chenxuefeng_accp的专栏 1796

全面解析:时延扩展与相干带宽、多普勒扩展与相干时间——无线通信基础

时延扩展与相干带宽 多径时延扩展与多径衰落 接收机所接收到的信号是通过不同的直射、反射、折射等路径到达接收机。由于电波通过各个路径的距离不同, 因而各条路径中发射波的到达时间不同,造成多径时延扩展。距离不同所以到达接收机的相位也不相同,不同相位的多个信号在接收端叠加, 如果同相叠加则会使信号幅度增强, 而反相叠加则会削弱信号幅度。 这样,接收信号的幅度将会发生急剧变化,就会产生多径衰落。 ...

king阿金 4万+

某10kV纺织厂供电系统设计【CAD图纸源码+Word文档】

本文详细介绍了设计变电所原始资料,负荷统计,基于负荷统计给出了变压器的选型,变电所主接线方式的设计、高低压母线、电缆的技术要求、短路电流的计算以及相关电气设备的保护参数及保护定值的计算、安全措施的规定。

weixin_761237174的博客 2742

前端刷新token,判断token是否过期(jwt鉴权)

4.1 什么是 JWTJWT 是 Auth0 提出的通过 对 JSON 进行加密签名来实现授权验证的方案;就是登录成功后将相关用户信息组成 JSON 对象,然后对这个对象进行某种方式的加密,返回给客户端;客户端在下次请求时带上这个 Token;服务端再收到请求时校验 token 合法性,其实也就是在校验请求的合法性。4.2 JWT 的组成JWT 由三部分组成: Header 头部、 Payload 负载 和 Signature 签名。

qq_45641978的博客 5571

(nginx) nginx5 nginx https部署实战

综上所述,相比 HTTP 协议,HTTPS 协议增加了很多握手、加密解密等流程,虽然过程很复杂,但其可以保证数据传输的安全。所以在这个互联网膨胀的时代,其中隐藏着各种看不见的危机,为了保证数据的安全,维护网络稳定,建议大家多多推广HTTPS。SSL 证书费用很高,以及其在服务器上的部署、更新维护非常繁琐HTTPS 降低用户访问速度(多次握手)网站改用HTTPS 以后,由HTTP 跳转到 HTTPS 的方式增加了用户访问耗时(多数网站采用302跳转)

weixin_50382197的博客 1504

java jwt刷新_基于springboot+jwt实现刷新token过程解析

前一段时间讲过了springboot+jwt的整合,但是因为一些原因(个人比较懒)并没有更新关于token的刷新问题,今天跟别人闲聊,聊到了关于业务中token的刷新方式,所以在这里我把我知道的一些点记录一下,也希望能帮到一些有需要的朋友,同时也希望给我一些建议,话不多说,上代码!1:这种方式为在线刷新,比方说设定的token有效期为30min,那么每次访问资源时,都会在拦截器中去判断一下toke...

weixin_35448535的博客 2409

绝对旋转编码器学习笔记(基本原理,与PC通信等,不定期更新中)

前言 最近开始学习编码器相关内容,目的在于搞清楚编码器的原理,与上位机的联系等问题。笔记资料来源为网络,整理的同时也会有一些总结和感悟。由于研究方向需求,主要研究数字旋转编码器。 1.编码器的定义 编码器(encoder)是将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。——摘自《百度百科》 通常来说,编码器可以将角度位移、直线位移、转速等物理量转换为电信号。这里的电信号根据不同原理的编码器输出脉冲、二进制数码等不同的类型,下面会提到。 2.编码器的分类 编.

黑化咸鱼的博客 1万+

【正点原子I.MX6U-MINI移植篇】Ubuntu-base根文件系统移植构建过程详解(四)

能不能在ARM板上运行Ubuntu呢?答案肯定是可以的,Ubuntu是Linux系统的一种,可以简单的将Ubuntu理解为一个根文件系统,和我们用busybox、buildroot制作的根文件系统一样。因此移植Ubuntu也就是将Ubuntu根文件系统移植到我们的开发板上。

果果小师弟的博客 3767

java jwt刷新_jwt刷新token

前一段时间讲过了springboot+jwt的整合,但是因为一些原因(个人比较懒)并没有更新关于token的刷新问题,今天跟别人闲聊,聊到了关于业务中token的刷新方式,所以在这里我把我知道的一些点记录一下,也希望能帮到一些有需要的朋友,同时也希望给我一些建议,话不多说,上代码!1:这种方式为在线刷新,比方说设定的token有效期为30min,那么每次访问资源时,都会在拦截器中去判断一下toke...

weixin_32562455的博客 3278

01-FreeSWITCH 的安装、部署、配置以及可能遇到的问题和解决方法

一文让您了解从FreeSWITCH 的安装、部署、配置、可能遇到的问题及解决方法。一切从实际项目出发,以工程应用为目的。

秋风的博客 2127

vue axios 刷新token 刷新jwt js刷新token http刷新token

前言 在互联网的登陆系统中一般有session cookie 和 jwt token来进行验证用户是否登录的.下面来说一下关于 jwt的坑: 1.首先登录成功的返回,其中jwt的有效期为2小时,refreshJwt的有效期为30天如下: 2.保存jwt 和refreshJwt在cookie中,当然这里不一定要保存在cookie中,也可以保存在别的地方.这里以cookie为例子: 3....

狼丶宇先森的网络科技空间 8399

10、进化动力学谱分析中的开放性问题

本文探讨了进化动力学谱分析中的若干开放性问题,重点围绕进化算法的性能与设计理论展开。文章首先介绍了规范模型及其线性动力学特性,随后深入分析了在实际应用中偏离理想情况的两个关键因素:有限种群和双亲重组。在此基础上提出了三个核心开放性问题:寻找最优传输矩阵以实现全局最优解的高效搜索、无限与有限种群模型谱之间的关系、以及卡林定理在多遗传算子下的推广可能性。通过谱条件、快速混合性与首次命中时间的关系分析,文章进一步讨论了全局吸引与快速收敛的理论基础,并提出了未来的研究方向,包括理论深化、实验拓展与跨学科融合,旨在为

cuda7parallel的博客 80

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【shiro】shiro整合JWT——4.JWT Token刷新/续签

之前在写shiro整合JWT的时候,在ShiroRealm中有写到token的刷新;但后来看了很多别人的项目demo和博客发现之前的写法不太合适。这里参考之前看过的各个项目与博客,延续这之前shiro整合JWT内容的做了一波缝合怪。主要对之前的ShiroRealm,JwtUtil,JwtFilter类进行修改。ps:本文主要以记录核心思路为主。

kevin的博客 3853

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

jwt token 过期刷新_token超时刷新策略

需求分析我们在做用户中心时,对于登录用户签发其对应的token,对token设置他的固定有效期时间。我们通常会遇到一个这样的问题:在有效期内用户携带token访问没问题,当过了有效期后token失效,用户需要重新登录获取新的token。当token时间设置得很短,假如只有10分钟,那么用户当问期间每隔10分钟就要重新登录一次,这样对于用户来说是比较差的体验。一个App鉴权流程(token刷新机制)...

weixin_39922749的博客 4664

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Spring Security Jwt Token 自动刷新

最近项目中有这么一个功能,用户登录系统后,需要给 用户 颁发一个 token ,后续访问系统的请求都需要带上这个 token ,如果请求没有带上这个 token 或者 token 过期了,那么禁止访问系统。如果用户一直访问系统,那么还需要自动延长 token 的过期时间。

huan的学习记录 1万+

Jwt Token 的刷新机制设计

Jwt Token 的刷新机制设计Intro前面的文章我们介绍了如何实现一个简单的 Jwt Server,可以实现一个简单 Jwt 服务,但是使用 Jwt token 会有一个缺点就是 t...

dotNET跨平台 2539

JWT 刷新token详解

'refresh_token' => auth()->claims(['type' => 'refresh'])->setTTL(43200)->tokenById(auth()->id()) // 30 天。'expires_in' => auth()->factory()->getTTL() * 60, // access_token 过期时间。'refresh_ttl' => 43200, // refresh_token 有效期 (分钟)// 返回 Token 响应。// 刷新 Token 接口。

MXM_777的博客 462

java jwt刷新_SpringSecurity Jwt Token 自动刷新的实现

功能需求最近项目中有这么一个功能,用户登录系统后,需要给 用户 颁发一个 token ,后续访问系统的请求都需要带上这个 token ,如果请求没有带上这个 token 或者 token 过期了,那么禁止访问系统。如果用户一直访问系统,那么还需要自动延长 token 的过期时间。功能分析1、token 的生成使用现在比较流行的 jwt 来生成。2、token 的自动延长要实现 token 的自动延...

weixin_36236774的博客 1970

java jwt token刷新_Spring Security Jwt Token 自动刷新

功能需求最近项目中有这么一个功能,用户登录系统后,需要给 用户 颁发一个 token ,后续访问系统的请求都需要带上这个 token ,如果请求没有带上这个 token 或者 token 过期了,那么禁止访问系统。如果用户一直访问系统,那么还需要自动延长 token 的过期时间。注意不推荐使用,存在 refreshToken 的泄漏风险,应该在 token 过期时,再次发送请求使用 refresh...

weixin_32049085的博客 905

jwt token 过期刷新_ASP.NET Core 应用JWT进行用户认证及Token的刷新

(给DotNet加星标,提升.Net技能)转自:FlyLolocnblogs.com/FlyLolo/p/ASPNETCore2_26.html本文将通过实际的例子来演示如何在ASP.NET Core中应用JWT进行用户认证以及Token的刷新方案(ASP.NET Core 系列目录)一、什么是JWT?JWT(json web token)基于开放标准(RFC 7519),是一种无状态的...

weixin_39785970的博客 2130

springboot jwt redis实现token刷新

使用jwt的好处就是,服务器不需要维护,存储token的状态。服务器只需要验证Token是否合法就行。确实省了不少事儿。但是弊端也显而易见,就是服务器没法主动让一个Token失效,并且给Token指定了exp过期时间后,不能修改。 配合redis,就可以轻松的解决上面两个问题 token的续约 服务器主动失效指定的token 接下来,我会演示一个实现Demo 初始化一个工程 <parent> <groupId>org.springframework.boot</group

csdn_0xFFFF的博客 3864
上一篇: Ubuntu 18.04 安装大数据入门教程(hadoop3.2、scala2.11.12、spark2.4、sbt1.2.8)
下一篇: ubuntu18 CrossOver18 安装 微信(WeChat)TIM(QQ) 百度云 及问题解决
摇头晃奶
博客等级 码龄10年 8粉丝 21原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值