使用jwt设置过期时间的问题
1.当用户登录成功后,签发了一个token,设置了过期时间,假设为2个小时;
2.当用户距离到期时间大于30分钟的时候,用户携带原token访问接口,此时不签发新token,原token依然有效;
3.当用户距离到期时间小于30分钟,但是并没有过期,用户携带原token访问接口,这个时候签发新token,原token失效;
4.当用户token已经过期,直接签发新token。
这里给用户留了半小时的无操作判断,和以前的session有些相似。我想问的是这样还有什么弊端吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
用jwt就说明授权无法撤销, 但是可以通过在token中过期时间来取消授权;
第3点中,你是无法让原token失效的, 因为你不知道这个token是否签发过新token,如果用数据库存储就另说了.(这也违背了jwt设计吧?);
第4点,过期的token,不能直接签发新token,必须要正确的授权再签发,(这里可能是你的笔误,表达重新授权签发之意?)
session存server, jwt token存client, jwt无法主动撤销授权.
要说弊端,就是第三点的多授权token问题? 好像也不是什么大问题...
每个用户都有自己的秘钥,注销就把秘钥修改一次,这样能行吗