WSO2 API-M 3.0预发布版:如何获取Admin/Publisher API调用的OAuth令牌
如何生成WSO2 API-M 3.0预发布版Publisher API的OAuth访问令牌
我之前测试WSO2 API-M 3.x版本时也碰到过这个问题——调用Publisher的管理类API(比如创建新API)需要的是管理员级别的OAuth令牌,和你给已发布API/应用生成的用户令牌逻辑不一样。下面是具体的生成步骤:
确认权限与Scope:首先要明确你调用的API需要哪些Scope,比如创建API需要
apim:api_create,查看API列表需要apim:api_view,把你需要的Scope都整理好。使用Token Endpoint获取令牌:WSO2 API-M默认的Token端点是
https://<你的API-M部署地址>:8243/token(本地部署就是https://localhost:8243/token),我们用password授权类型来生成令牌,因为你已经有admin账号密码,操作最直接:- 设置请求头:
Content-Type: application/x-www-form-urlencoded - 构造请求体参数:
grant_type=password:指定授权类型为密码模式username=admin:你的管理员用户名password=admin:管理员密码scope=apim:api_create apim:api_view:把需要的Scope用空格分隔开client_id=admin:默认的管理员客户端ID(未修改过的话就是这个)client_secret=admin:对应的客户端密钥
给你一个本地部署可用的cURL命令示例:
curl -k -d "grant_type=password&username=admin&password=admin&scope=apim:api_create apim:api_view&client_id=admin&client_secret=admin" -H "Content-Type: application/x-www-form-urlencoded" https://localhost:8243/token- 设置请求头:
使用令牌调用API:发送请求后,你会收到包含
access_token的JSON响应,把这个令牌放到请求头里,格式为Authorization: Bearer <你的access_token>,就可以调用对应的Publisher API了。
补充一句:如果想用client_credentials授权类型,需要先确保admin客户端已经被赋予了对应的Scope权限,但用password模式对于管理员账号来说是最快捷的方式,非常适合测试场景。
内容的提问来源于stack exchange,提问作者user9494294
相关产品推荐
相关产品推荐

