springcloud的项目用JWT做身份验证,对于token过期时间的刷新策略整理如下图:

刷新策略

在登录接口中返回两个token,一个是用来请求业务接口验证身份信息的accessToken,一个是过期后用来获取新的token的refreshToken,refreshToken中不携带权限等信息,因为不需要让refreshToken去请求业务接口,只用来获取新的token,refreshToken的过期时间相对长一些,accessToken的过期时间相对短一些,这一点根据自己的业务来定。

当客户端用accessToken请求业务接口收到【证书过期】的时候,携带着refreshToken去请求【刷新token】的接口,该接口重新设置两个token的过期时间然后返回给客户端,注意:不要改变两个token中存放的信息,重新设置过期时间的代码如下:

设置过期时间

获取JWT主体

注意这里的setAllowedClockSkewSeconds方法,如果不设置这个时间,一旦你的token过期了,你在获取JWT主体的时候就会报错,JWT的源码如下:

JWT过期抛异常

所以即使你的accessToken过期了,你也应该允许获取到主体的信息以方便刷新,setAllowedClockSkewSeconds的时间应该跟你的refreshToken的过期时间是一样的,此处也可以根据具体业务自行斟酌。

php jwt token刷新方案,JWT刷新token策略相关推荐

  1. JWT登录过期自动刷新方案与token泄漏解决方案

    概念 简单来说JWT就是通过一定规范来生成token,再用解密算法解密token,就可以获取用户信息了. 优缺点 优点:避免重复查库,存储在客户端,不占用服务端资源 缺点:token是经过base64 ...

  2. JWT Token刷新方案

    JWT TOKEN刷新方案 一.环境 Springboot,Redis 二.需求 最近在做用户中心,需要向其他服务签发JWT Token,使用Token来获取用户信息,保证用户信息安全可靠,不会被重放 ...

  3. php jwt token刷新方案,解决使用jwt刷新token带来的问题

    前后端分离,使用token的方式校验用户信息,我选择了jwt,使用的教程在网上可以找到很多,不做介绍. 这里说明一个使用过程中,最重要的的一个环节刷新token带来的问题. 业务要达到的目标: 用户登 ...

  4. Laravel使用Dingo API+JWT实现认证机制 无痛刷新Token

    Laravel使用Dingo API+JWT实现认证机制 无痛刷新Token 一.安装[Dingo API](https://github.com/dingo/api) 和 [JWT](https:/ ...

  5. 黑马头条项目 JWT—4.3 头条项目实施方案(生成token接口测试)

    头条项目实施方案 需求 设置有效期,但有效期不宜过长,需要刷新. 如何解决刷新问题? 手机号+验证码(或帐号+密码)验证后颁发接口调用token与refresh_token(刷新token) Toke ...

  6. php oauth2 和 jwt,jwt-auth: thinkphp 的 jwt (JSON Web Token)身份验证扩展包,支持Swoole...

    JWT-AUTH thinkphp的jwt(JSON Web Token)身份验证包.支持Header.Cookie.Param等多种传参方式.包含:验证.验证并且自动刷新等多种中间件. 支持Swoo ...

  7. 接口使用jwt返回token_API接口JWT方式的Token认证(下),客户端(Android)的实现

    上篇文章已经介绍了 JWT 认证在 Laravel 框架服务器上的实现.这篇文章继续介绍 Android 客户端的实现.回顾下 JWT 认证的流程,客户端先提交账号密码进行登录,账号密码验证成功后,服 ...

  8. token 过期刷新令牌_Passport 验证 Token 方法和持续刷新过期时间问题

    项目介绍 最近在做一个后台项目,目标是登录后无操作30分钟后自动过期,一直操作的情况下,过期时间一直刷新(目前不考虑每次操作修改对数据库的压力) token有效期检测 操作后自动刷新过期时间 管理员手 ...

  9. vue12Jwt详解+JWT组成+JWT的验证过程+JWT令牌刷新思路+代码

    目录 1. JWT是什么 2. 为什么使用JWT 3. JWT的工作原理: 4. JWT组成 JWT结构原理图: JWT实际结构: 4.1 Header 4.2 Payload(负荷) 4.3 sig ...

最新文章

  1. 以太坊和EOS的DApps数量飙升但用户量滞后
  2. 本周ASP.NET英文技术文章推荐[03/25 - 03/31]
  3. docker 配置文件:/etc/docker/daemon.json
  4. C++一维数组指针详解
  5. 云计算运维累不累_要做好云计算运维管理,一定要注意这3个要点
  6. Thread类和Runnable接口如何运用?
  7. 怎么提升企业数据分析能力
  8. 自学PL/SQL 第一讲decalring variables
  9. 最强面试题整理第二弹:Python 进阶面试题(附答案)
  10. CPC客户端编写新申请时报错异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
  11. (图论) Tarjan 算法
  12. 网易云音乐的品牌竞争力研究
  13. 【Verilog基础】Verilog语法之force和release
  14. 三菱FX3G和台达,施耐德两台变频器的通讯示例
  15. isFinite函数
  16. mac下编译android下libaac,Mac系统下编译FFmpeg(支持libx264)for iOS
  17. 七种流行的python开发软件,收藏了
  18. CAD梦想画图中的“绘图工具——椭圆弧”
  19. 君正 Halley6 开发板调试SPI LCD
  20. 卧槽,又来一个Python神器!!

热门文章

  1. 优雅使用JsDeliver加速文件
  2. 大厦将倾,互联网将如何变革传统行业(下)
  3. 杰理之RF 传输线设计应遵循 50 欧阻抗匹配【篇】
  4. 多个微信怎么管理更高效
  5. 【OceanBase】 OBCA考试Tips
  6. 如何玩新零售 新零售渠道有哪些?
  7. win10系统笔记本电脑如何外接两个屏幕?
  8. 怎样验证联想笔记本电脑--是否为正品行货
  9. 招聘全职或者专职讲师
  10. 手工做迷宫_教你利用瓦楞纸手工制作弹珠迷宫