我一直在学习服务/微服务之间的通信。
API网关对请求进行身份验证,并在每个请求中传递一个访问令牌(例如JSON Web Token),以安全地标识请求者。服务可以在其向其他服务发出的请求中包含访问令牌。
我将用户的access-token传递给下游服务,因此它看起来更或多或少像这样:
但是,如果token在微服务之间过期了怎么办?
有很多种方法可以解决这个问题,这些方法似乎是合理的:
验证用户的访问令牌并在API网关中创建短期JWT(内部令牌)
每个微服务都验证JWT并根据范围规则生成自己的JWT与其他微服务通信
因此,我们将拥有一个验证或请求令牌的Auth服务。
问题是:
为了确保令牌在通过服务的过程中不会过期,我们可以在API网关层中进行检查:如果令牌在n(〜1)分钟内过期,则拒绝该令牌,因此用户必须使用更新令牌来获取新的访问令牌。这意味着令牌始终对于完成请求所需的时间而言都是有效的。这种方法的优缺点是什么?