是否可以使用相同的客户端凭据拥有多个有效的访问令牌?

Rap*_*l M 4 wso2 access-token oauth-2.0

我有一个使用 OAuth2 身份验证的 API 设置。客户已使用 WSO2 订阅了我的 API。我们不使用刷新令牌。所有访问令牌将在 1 小时后过期。

如果我的客户端使用相同的客户端凭据请求 2 个访问令牌,会发生什么情况?第一个令牌会被撤销还是两个令牌都会保留 1 小时?

小智 7

当您使用客户端凭据请求令牌时,它将提供一个有效期为 1 小时的访问令牌。如果您在 1 小时内再次从令牌 API 请求令牌,它将给出相同的令牌。基本上,如果有一个有效的令牌,那么它将返回该令牌。这是默认行为。

但是,如果您使用 API Store 并单击令牌重新生成,那么它将首先撤销令牌并为您获取新的访问令牌。

如果您想同时为同一客户端凭据获取两个不同的访问令牌,则可以使用范围。当令牌请求中存在不同范围时,它将返回两个不同的访问令牌。


abd*_*ali 5

根据WSO2 文档,您不能拥有多个访问令牌。您可以做的是将令牌过期时间更改为超过一小时。

在 WSO2 API-M 中,以下组合的访问令牌必须是唯一的 - CONSUMER_KEY、AUTHZ_USER、USER_TYPE、TOKEN_STATE、TOKEN_STATE_ID 和 TOKEN_SCOPE。后一个提到的约束在 IDN_OAUTH2_ACCESS_TOKEN 表中定义。因此,上述任何组合都不可能有多个访问令牌。

  • 实际上,同一客户端可以同时拥有不同的访问令牌,因为它们具有不同的范围。 (2认同)