我正在使用带有JWT授权的JHipster构建一个基于微服务的小型webapp。架构很简单,一个网关和两个带存储库的服务。我过去几个小时遇到的问题是两个后端服务之间的通信。
起初,我试图在服务上找到一个令牌,但无法找到它。如果我在所有文档中都错过了它(当从完整堆栈开始时非常压倒:P),我很乐意恢复我的更改并使用预定义的令牌。
我的第二种方法是每个服务都会使用PostConstruct中的网关进行授权,并将令牌保存在内存中,以便在每次API调用时使用它。它没有问题,但我发现很难相信这个功能还没有在JHipster编程。
所以我的问题是我的方法是否正常?如果两者都不是真的并且有一些最佳实践,我也对它们感兴趣。
答案 0 :(得分:0)
这取决于用例。
对于用户请求,一种常见的方法是:呼叫服务将收到的令牌转发给其他服务,而不通过起诉@AuthorizedFeignClient
的网关。
对于预定作业等后台任务,可以应用您的方法,或者您也可以签发长寿命令牌,只要他们通过角色拥有有限的权限即可。这样你就不必通过网关了。
Keycloak的offline tokens方法也可以激励你。