You need to enable JavaScript to run this app.
文档中心
ArkClaw 企业版

ArkClaw 企业版

复制全文
下载 pdf
应用中心
获取 JWT 并进行解码验签代码示例
复制全文
下载 pdf
获取 JWT 并进行解码验签代码示例
开启 JWT 身份令牌 后,平台会在请求 MCP 服务或 Agent 服务时,通过 x-arkclaw-jwt Header 附带一份身份令牌。服务端可读取该令牌,并完成验签。验签通过后,您可以获取实际调用用户的身份信息,并将其用于权限控制、数据隔离或审计记录等场景。
如果您的服务需要区分不同调用用户,建议开启 JWT 身份令牌。本文介绍如何在服务端读取 x-arkclaw-jwt Header 中的 JWT,并完成解码和验签。
获取验签地址(JWKS URL)
代码示例中的 JWKS_URL 需要您自行获取一次,并保存到服务端变量或配置中,后续验签直接复用即可,无需每次重新获取。获取方式如下:
  1. 开启 JWT 身份令牌后,在 Claw 或 Agent 中触发一次对该 MCP 或 Agent 的调用,您的服务会收到平台发来的请求。从请求 Header 中取出 x-arkclaw-jwt 的值,用 jwt.io 打开,找到其中的 iss 字段(即 issuer,签发方地址)。
  1. 复制 iss 的值,在末尾加上 /.well-known/openid-configuration,用浏览器打开这个地址。
  1. 页面会返回一段 JSON,找到其中的jwks_uri字段,复制它的值。
  1. 把这个值填入代码中的 JWKS_URL
代码示例
以下示例展示如何在 Python 服务端读取 x-arkclaw-jwt Header 中的 JWT,并通过 JWKS 地址完成验签。
import jwt
from jwt import PyJWKClient
# 将上述步骤中获取到的 jwks_uri 填写在这里。
JWKS_URL = "<jwks_uri>"
jwk_client = PyJWKClient(JWKS_URL)
def parse_jwt(token):
if token.startswith("Bearer "):
token = token[len("Bearer "):]
# 根据 JWT 获取对应的签名公钥。
signing_key = jwk_client.get_signing_key_from_jwt(token)
# 使用公钥对 JWT 进行验签,并解析其中的身份信息。
claims = jwt.decode(
token,
signing_key.key,
algorithms=["RS256"],
options={
"verify_aud": False,
},
)
return claims
# 从请求 Header 中读取 JWT。
token = request.headers.get("x-arkclaw-jwt")
# 验签通过后,claims 中将返回 JWT 内的用户身份信息。
claims = parse_jwt(token)
最近更新时间:2026.08.18 18:04:08
这个页面对您有帮助吗?
有用
有用
无用
无用