关于JWT的一些疑问

来源:4-15 网关模块-用户名检查和退出功能实现

丶远走高飞

2018-11-26

老师在4-15章节,讲了在logout,也就是用户退出时的一些操作。
/*
应用:用户信息存两份
1、前端存储JWT【七天】:JWT的刷新
2、服务器端会存储活动用户信息【30分钟】
3、JWT的userId为key,查找活跃用户
退出:
1、前端删除掉JWT
2、后端服务器删除活跃用户缓存
现状:
1、前端删除掉JWT
*/
问题在于 既然后端活跃用户才30分钟,30分钟后就刷新,然后重新给JWT,需要用户重新登录。
那么为什么前端存储JWT还需要7天呢

写回答

1回答

Allen

2018-11-27

这个问题分两方面说哈:

1、做课程的时候如果把两个时间设置成一样的,很容易让学生混淆

2、业务系统里虽然不会设置到七天这么大,但是也不会特别小。 这个其实也是一些系统里什么七天免登陆等实现方式之一, 在这七天里,只要你持有jwt, 就可以做到免登陆查询用户信息。 至于删除活跃用户缓存,这个仅仅是为了安全考虑, 避免用户信息更新但是缓存更新不及时的情况, 另一方面也可以节约内存

0
5
zender
回复
丶远走高飞
也就是说,前端的jwt是访问数据的凭证,这个凭证对不需要登录就能访问的接口没有实际意义,但是可以做一层检测,如果jwt没过期,但是后端缓存过期了,可以从数据库重新拉一把,这样用户在访问需要登录的接口的时候就不需要重新登录了。而后端缓存的存在主义是为了保证需要登录才能访问的接口的安全性。可以这么理解吧
2019-09-22
共5条回复

Dubbo主流版本打造仿猫眼项目 理解微服务核心思想

实战Dubbo项目+面试技巧,老司机带你畅游微服务

1410 学习 · 582 问题

查看课程