【问题标题】:How to refresh the access token of an Application with the WSO2 API Manager 1.10.0?如何使用 WSO2 API Manager 1.10.0 刷新应用程序的访问令牌?
【发布时间】:2016-04-20 12:45:36
【问题描述】:

我(终于)设法为使用带有 WSO2 API Manager 1.10.0 的 API 的应用程序获取了有效的访问令牌。但是,我不清楚如何刷新此令牌。

我通过使用以下有效负载调用 https://myapi.mydomain.com/api/am/store/v0.9/applications/generate-keys?applicationId=2b205ee5-5891-4913-96e0-b4952d7d2a4c 获得了工作访问令牌

var payload = {
    'grant_type': 'password',
    'username': username, 
    'password': password,
    "validityTime": validityTime,
    "keyType": "PRODUCTION",
    "accessAllowDomains": [ domain ]
}

结果如下:

Generating application keys for application with id '2b205ee5-5891-4913-96e0-b4952d7d2a4c'
{ consumerKey: '5k7UDuFTV0UE7mESHerEIm2Nj3ga',
  consumerSecret: 'm1hS_SNfHF25l9lP9YjYpf977VUa',
  keyState: 'APPROVED',
  keyType: 'PRODUCTION',
  supportedGrantTypes:
   [ 'urn:ietf:params:oauth:grant-type:saml2-bearer',
     'iwa:ntlm',
     'refresh_token',
     'client_credentials',
     'password' ],
  token:
   { tokenScopes: [ 'am_application_scope', 'default' ],
     validityTime: 2678400,
     accessToken: 'be8661550ee51b7682902e58a58108f6' } }

所以我似乎有权刷新我的访问令牌。但是,文档仅提及在您拥有刷新令牌时如何执行此操作,而回复中缺少该令牌。我做错了什么?

【问题讨论】:

标签: api wso2 wso2-am


【解决方案1】:

您用来生成令牌的 API 不是您工作的 API。 API 'applications/generate-keys' 用于生成与应用程序相关的密钥(客户端密码和客户端 ID)。生成的令牌 这有一个 client_credential 授权类型。这就是为什么您没有获得刷新令牌的原因。该令牌是使用客户端 ID 和密码生成的。

我看到您已在有效负载中将授权类型作为“密码”发送,但这些参数一开始就无效。该 api 不接受授权类型名称。 (API 用于生成应用程序密钥。因此不需要授权类型)

实际样本负载(请参阅https://docs.wso2.com/display/AM1100/apidocs/store/#!/operations#ApplicationindividualApi#applicationsGenerateKeysPost

{ 
  "validityTime": "3600",
  "keyType": "PRODUCTION",
  "accessAllowDomains": ["ALL"
  ]
}

要生成令牌,请使用令牌 api (https://docs.wso2.com/display/AM1100/Token+API)。这些 api 是根据 OAuth2 规范实现的。使用“密码”时,您将获得一个刷新令牌 使用这些令牌 API 的授权类型

【讨论】:

    【解决方案2】:

    如果您点击订阅选项卡,您可以在 API Store(开发者门户)中刷新令牌,然后:

    • 立即手动点击重新生成按钮刷新,或
    • 单击 cURL 按钮生成可用于以编程方式刷新的命令:

    注意事项:

    【讨论】:

    • 谢谢。唯一的缺点是这个调用不允许我指定有效期。看来我必须写a custom oauth handler 才能这样做......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多