jwt的token被盗了怎么办

比如说给A用的token,被B用户看到了,B用户拿着这个token调用api服务。这种情况该怎么处理?通过token的过期时间进行控制吗?

阅读 27.3k
5 个回答

jwt有个弊端,就是token生成后,没办法将该token设置为无效
你可以先了解下,jsonWebToken为什么要产生.
这文章写的不错,你可以看看https://juejin.im/entry/59748...
如果说,你要撤销某个token的有效性,根据jwt的特性,是没办法撤销的.
但是,你可以用个单独的服务,来生成,存储,验证,刷新jwt.你可以在这个服务中看到所有有效的token,正在使用的token,撤销某个token.只有该服务验证通过后,用户的请求才会进入到你的业务逻辑代码中
有个框架叫keycloak,专门实现上面所说的功能,你如果嫌麻烦,可以看下这个框架如何使用

其实服务器连TOKEN被盗都有可能不知道

只能设置过期时间短一点来预防。

推荐https

我来说两句
1 - token如果你结合 oauth的话 可以设置两个token,一个access 一个 refresh,这样access是短时间的,时间到了用refresh去换新的token。
2 - 不推荐服务器端记录token并且标明注销,但是你非要这么做也不是不可以。

1、时间戳,过期则需再次登录

2、客户端记录调用api的总请求次数与服务端返回的用户总请求次数是否差距过大,过大则提醒用户未知风险,需再次登录

token要设置http only。。。

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