有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Kong和JWT如何从令牌中提取信息

今天我开始研究Kong,以及它如何通过插件提供一些功能。我正在阅读[enter link description here][Plugins]页面,开始查看JWT

香港似乎提供了这些端点(而且不仅限于):

  • 创造消费者
  • 创建/删除JWT凭证
  • 使用从步骤2获取的凭证生成JWT令牌

一旦激活,Kong将验证JWT(和声明)的有效性,并将请求转发给API端点(如果有效)

以下是我的问题:

  1. 由于JWT还用于携带信息(例如客户ID、客户角色),以便在每个API中始终包含用户信息的子集,而无需每次查询DB或其他端点,每个API如何解析JWT令牌并提取其中的信息

  2. 想象一下,我想创建一个与Kong交互的单页应用程序,它隐藏了许多微服务。哪个是使用JWT的最佳方式,每个后端微服务都可以解析JWT令牌,以便检索发出请求的用户ID

  3. kong是否提供了解析JWT令牌的api


共 (2) 个答案

  1. # 1 楼答案

    1. 您可以使用JWT库(例如JJWT)来解码API端点实现中的令牌,也可以使用专用的微服务来解码它

    2. 当您对用户进行身份验证时,您将生成并访问令牌,然后在每个请求的头中发送它。这样,您的微服务就可以通过#1

    3. 看起来不像

  2. # 2 楼答案

    我也有类似的要求。我通过在我的spring boot应用程序中添加JwtFilter来实现它,该应用程序将提取JWT令牌,解析它并在SecurityContextHolder中设置它。我可以根据需要从SecurityContextHolder提取用户信息。不过,我面临的挑战是确定注册JWT时使用的secret,因为我无法控制它是如何在消费者端生成的