使用jwt设置过期时间的问题

1.当用户登录成功后,签发了一个token,设置了过期时间,假设为2个小时;

2.当用户距离到期时间大于30分钟的时候,用户携带原token访问接口,此时不签发新token,原token依然有效;

3.当用户距离到期时间小于30分钟,但是并没有过期,用户携带原token访问接口,这个时候签发新token,原token失效;

4.当用户token已经过期,直接签发新token。

这里给用户留了半小时的无操作判断,和以前的session有些相似。我想问的是这样还有什么弊端吗?

阅读 40.2k
2 个回答

用jwt就说明授权无法撤销, 但是可以通过在token中过期时间来取消授权;
第3点中,你是无法让原token失效的, 因为你不知道这个token是否签发过新token,如果用数据库存储就另说了.(这也违背了jwt设计吧?);
第4点,过期的token,不能直接签发新token,必须要正确的授权再签发,(这里可能是你的笔误,表达重新授权签发之意?)

session存server, jwt token存client, jwt无法主动撤销授权.
要说弊端,就是第三点的多授权token问题? 好像也不是什么大问题...

每个用户都有自己的秘钥,注销就把秘钥修改一次,这样能行吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进