作者回复: 技术上可以实现,比如吊销时,授权服务器发通知消息,网关订阅吊销通知,请求经过网关做令牌验证时,网关看令牌是否已经吊销。
作者回复: 在jwt的公私钥模式中,私钥存在Auth服务器上,不能存客户端,公钥一般也不存客户端(存网关或者后台服务器上),即使存客户端也没有大关系,公钥本来就是公开的,只不过能够解签jwt,不能篡改数据。
作者回复: 过期了重新登录,或者提前使用refresh token机制获取新的token。 令牌和信用卡/签名支票/身份证有点类似,被别人拿去是可以用的。但是可以通过https和设置合理的token过期时间来减轻风险。 对于传统的web session,session id/cookie之类也可能被截获,道理一样。
作者回复: 有很多提前失效的做法,比如在staffjoy案例应用中,jwt是存在cookie中的,只需要把cookie清掉,就可以看作提前登出,后续必须重新登录,具体看staffjoy源码。
作者回复: 理论上存在这种情况,如果调B时令牌过期了,那么就返回令牌调用失败响应。 实际情况是: 1. 一般在令牌过期前,用户端一般会提前刷新令牌,所以调内部服务时你说的这种情况一般是不会发生的。 2. 一般在前置的网关层集中校验令牌,转换成用户信息header,再向后传递,所以内部不需要再传令牌,而是传用户信息