You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Kong无DB模式(Kubernetes环境)中解析JWT并传递结果至业务服务

Kong无DB模式(K8s部署)下JWT插件解析相关问题解决方案

1. 如何获取Kong中JWT插件的解析/解码结果?

Kong的JWT插件完成验证后,解码得到的Claims会存在Nginx上下文变量里,你可以通过Lua代码直接访问。比如在请求处理阶段的自定义代码中:

local claims = kong.jwt.get_claims()
-- 提取具体字段,比如user_id
local user_id = claims["user_id"]

如果只是要在日志里查看解析结果,可以修改Kong的日志格式,把$kong_jwt_claims或具体的Claims字段加入日志模板,K8s部署时可通过配置文件或环境变量调整log_format参数实现。

2. 能否把JWT解码结果传递给业务服务(比如添加x-user-id请求头)?

完全可以,两种方式实现:

  • 用JWT插件自带配置:JWT插件提供claims_to_headers配置项,直接在KongPlugin资源里配置映射关系即可。示例:
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
  name: jwt-pass-user-id
plugin: jwt
config:
  claims_to_headers:
    - claim: user_id
      header: x-user-id

之后把这个插件关联到对应Ingress或Service上,Kong就会自动把JWT里的user_idClaims放到x-user-id请求头中转发给业务服务。

  • 自定义Lua逻辑(Pre-function插件):如果需要更灵活的处理(比如字段转换、条件判断),可以用Pre-function插件注入Lua代码:
local claims = kong.jwt.get_claims()
if claims and claims.user_id then
  kong.service.request.set_header("x-user-id", claims.user_id)
end

无DB模式下,把这段代码配置到KongPlugin的pre-function配置中即可生效。

内容的提问来源于stack exchange,提问作者devina thessalonica

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 15:03:22