比如说给A用的token,被B用户看到了,B用户拿着这个token调用api服务。这种情况该怎么处理?通过token的过期时间进行控制吗?
我来说两句
1 - token如果你结合 oauth的话 可以设置两个token,一个access 一个 refresh,这样access是短时间的,时间到了用refresh去换新的token。
2 - 不推荐服务器端记录token并且标明注销,但是你非要这么做也不是不可以。
1、时间戳,过期则需再次登录
2、客户端记录调用api的总请求次数与服务端返回的用户总请求次数是否差距过大,过大则提醒用户未知风险,需再次登录
token要设置http only。。。
1 回答526 阅读✓ 已解决
1 回答853 阅读
jwt有个弊端,就是token生成后,没办法将该token设置为无效
你可以先了解下,jsonWebToken为什么要产生.
这文章写的不错,你可以看看https://juejin.im/entry/59748...
如果说,你要撤销某个token的有效性,根据jwt的特性,是没办法撤销的.
但是,你可以用个单独的服务,来生成,存储,验证,刷新jwt.你可以在这个服务中看到所有有效的token,正在使用的token,撤销某个token.只有该服务验证通过后,用户的请求才会进入到你的业务逻辑代码中
有个框架叫keycloak,专门实现上面所说的功能,你如果嫌麻烦,可以看下这个框架如何使用