Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.0k views
in Technique[技术] by (71.8m points)

JWT中token过期问题?

使用JWT生成token后为token设置一个过期时间(假设为30分钟)并且存在redis中,等到30分钟之后token会过期。但是如果我一直在浏览网站,那么30分钟之后token就不应该过期(过期之后就需要重新登录,这样逻辑很奇怪)。请问一下这样该怎么设计呢?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
  1. jwt生成的token不应该再存储在redis中,相关信息是存储在token中,每次请求的时候后端要解析这个token判断是否合法。
  2. jwt续期的操作通常是在第一步解析的时候,增加判断剩余的有效时间,超过某个临界点之后生成一个新的token返回到前端,前端检测到新的token之后替换旧的token。

我的看法:

jwt这个技术局限性太大,既无法统计在线人数,也无法将某个token强制设置为无效,想要取巧的设置token无效只能使用黑名单机制把token放到缓存里面,但是这个和jwt宣传的服务端不用存储token又背道而驰了...

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...