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

如何使用JWT令牌访问WSO2 API Manager中的API

使用JWT令牌访问WSO2 API Manager的API 详细指南

嗨,我来一步步教你怎么用JWT令牌访问WSO2 API Manager上的API,这些都是实际操作里总结的方法,跟着来就行!

一、前期准备

在开始之前,你得确保这些前提条件都满足:

  • WSO2 API Manager(以下简称APIM)实例已经正常运行,你能访问开发者门户和发布者门户
  • 已经在APIM上发布了需要访问的API(如果还没发布,先去发布者门户创建并发布API)
  • 有一个APIM的开发者账号,并且已经注册了一个应用(在开发者门户里创建应用,把目标API添加到这个应用里,获取对应的客户端ID和客户端密钥)

二、获取JWT令牌的两种常用方式

WSO2 APIM支持多种OAuth2授权流来获取JWT令牌,这里讲最常用的两种:

1. 密码模式(适合后端服务、测试场景)

这种方式直接用用户名密码获取令牌,步骤简单:

  • 打开终端或者API测试工具(比如Postman),发送POST请求到APIM的Token端点:
    curl -k -d "grant_type=password&username=<你的APIM用户名>&password=<你的密码>&client_id=<应用的客户端ID>&client_secret=<应用的客户端密钥>" https://<APIM主机地址>:<端口>/oauth2/token
    

    注:-k参数是跳过SSL证书验证,生产环境建议配置有效证书后去掉这个参数

  • 响应里的access_token字段就是你需要的JWT令牌!你可以复制这个令牌到jwt.io(本地解码即可,无需上传数据)查看里面的声明信息,比如有效期、用户信息、权限范围等。

2. 授权码模式(适合生产环境、前端/第三方应用)

这种方式更安全,需要用户手动授权,步骤如下:

  • 第一步:构造授权请求URL,在浏览器里打开:
    https://<APIM主机地址>:<端口>/oauth2/authorize?response_type=code&client_id=<应用的客户端ID>&redirect_uri=<你在应用里配置的重定向URI>&scope=<API的权限范围(可选)>
    
    登录你的APIM账号后,会跳转到你配置的重定向URI,URL里会带上code参数,这就是授权码。
  • 第二步:用授权码换JWT令牌,发送POST请求:
    curl -k -d "grant_type=authorization_code&code=<获取到的授权码>&redirect_uri=<和之前一致的重定向URI>&client_id=<应用的客户端ID>&client_secret=<应用的客户端密钥>" https://<APIM主机地址>:<端口>/oauth2/token
    
    同样,响应里的access_token就是JWT令牌。

三、用JWT令牌调用API

拿到令牌后,就可以调用目标API了:

  • 首先找到API的调用地址:在开发者门户的API详情页,你能看到API的上下文、版本,拼接成完整的URL,格式一般是:
    https://<APIM主机地址>:<端口>/t/<租户域名>/<API上下文>/<API版本>/<资源路径>
    

    注:如果是单租户环境,租户域名默认是carbon.super

  • 发送请求时,在请求头里添加Authorization: Bearer <你的JWT令牌>,比如用curl:
    curl -k -H "Authorization: Bearer <JWT令牌>" https://<APIM主机地址>:<端口>/t/carbon.super/my-api/v1/hello
    
    正常情况下,你就能收到API的响应了!

四、关键配置与注意事项

  • API安全策略配置:要确保你的API允许JWT令牌访问。去发布者门户编辑API,进入「运行时配置」→「安全」,选择「OAuth2/JWT」,并关联你创建的应用。
  • 令牌有效期:默认JWT令牌有效期是1小时,如果需要调整,修改APIM的deployment.toml文件:
    [oauth2.token]
    access_token_validity = 3600 # 单位:秒,这里是1小时
    
    修改后重启APIM生效。
  • 自定义JWT声明:如果需要在JWT里添加自定义字段,可以通过APIM的身份提供商配置,或者编写自定义调解器来实现。

五、常见问题排查

  • 401 Unauthorized错误:
    • 检查Authorization头格式是否正确:必须是Bearer + 空格 + 令牌,不要漏了空格
    • 确认JWT令牌是否过期:用jwt.io解码看exp字段,过期了就重新获取
    • 检查API是否和你的应用关联,以及应用是否被激活
  • 令牌获取失败:
    • 确认客户端ID、客户端密钥、用户名密码是否正确
    • 检查APIM的OAuth2端点是否可达,端口是否正确(默认是9443)
    • 如果是授权码模式,确认重定向URI和应用里配置的完全一致

内容的提问来源于stack exchange,提问作者suresh kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:51:43