【发布时间】:2020-03-20 04:35:54
【问题描述】:
我有一个设置了 OAuth2 身份验证的 API。客户使用 WSO2 订阅了我的 API。 我们不使用刷新令牌。所有访问令牌都会在 1 小时后过期。
如果我的客户端请求 2 个具有相同客户端凭据的访问令牌,会发生什么情况? 第一个令牌会被撤销,还是两个令牌都可以存活 1 小时?
【问题讨论】:
标签: oauth-2.0 wso2 access-token
我有一个设置了 OAuth2 身份验证的 API。客户使用 WSO2 订阅了我的 API。 我们不使用刷新令牌。所有访问令牌都会在 1 小时后过期。
如果我的客户端请求 2 个具有相同客户端凭据的访问令牌,会发生什么情况? 第一个令牌会被撤销,还是两个令牌都可以存活 1 小时?
【问题讨论】:
标签: oauth-2.0 wso2 access-token
当您使用客户端凭据请求令牌时,它将提供一个有效期为 1 小时的访问令牌。如果您在 1 小时内再次从令牌 API 请求令牌,那么它将提供相同的令牌。基本上,如果有一个有效的令牌,那么它将返回它。这是默认行为。
但是如果您使用 API Store 并单击令牌重新生成,那么它将首先撤销令牌并为您获取新的访问令牌。
如果您想同时为同一个客户端凭据获取两个不同的访问令牌,那么您可以使用范围。当令牌请求有不同的作用域时,会返回两个不同的访问令牌。
【讨论】:
根据WSO2 docs,您不能拥有多个访问令牌。您可以做的是将令牌过期时间更改为超过一小时。
在 WSO2 API-M 中,访问令牌对于以下组合必须是唯一的 - CONSUMER_KEY、AUTHZ_USER、USER_TYPE、TOKEN_STATE、TOKEN_STATE_ID 和 TOKEN_SCOPE。后面提到的约束在 IDN_OAUTH2_ACCESS_TOKEN 表中定义。 因此,以上任何一种组合都不能拥有多个访问令牌。
【讨论】: