请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于JWT的一些疑问

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

正在回答

1回答

这个问题分两方面说哈:

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

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

0 回复 有任何疑惑可以回复我~
  • 提问者 丶远走高飞 #1
    所以 其实前端设置多长时间无所谓(这个时间只要大于后端的活跃时间。 当后端为安全考虑,删除掉这个活跃用户信息时,前端持有的JWT就不管用了对吧,就得重新请求JWT,同时将之前的JWT销毁
    回复 有任何疑惑可以回复我~ 2018-11-28 15:15:56
  • 提问者 丶远走高飞 #2
    前端的7天就变成了噱头,一旦大于了后端设置的时间,其实就没啥用了。
    回复 有任何疑惑可以回复我~ 2018-11-28 15:17:13
  • Allen 回复 提问者 丶远走高飞 #3
    那还是不一样的,  你只有持有一个有效的JWT,就可以通过后端的安全认证, 在不需要登录的情况下将最新的数据从数据库中调入活跃用户缓存中就可以了。  可是没有这个JWT,你就需要重新登录啦
    回复 有任何疑惑可以回复我~ 2018-11-29 11:23:05
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信