【问题标题】:Is it possible to have multiple valid access tokens with the same client credentials?是否可以拥有多个具有相同客户端凭据的有效访问令牌?
【发布时间】:2020-03-20 04:35:54
【问题描述】:

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

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

【问题讨论】:

    标签: oauth-2.0 wso2 access-token


    【解决方案1】:

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

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

    如果您想同时为同一个客户端凭据获取两个不同的访问令牌,那么您可以使用范围。当令牌请求有不同的作用域时,会返回两个不同的访问令牌。

    【讨论】:

    • 感谢您的回答。我遇到的问题: - 第二个访问令牌与第一个不同 - 在我请求第二个访问令牌后大约 10 分钟,第一个被撤销。我想要的解决方案是:如果我有 2 个请求,我想要相同的访问令牌。正是你所描述的。明天我会检查我的 WSO2 是如何设置的。
    【解决方案2】:

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

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

    【讨论】:

    • 感谢您的回答!
    猜你喜欢
    • 2022-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-16
    • 1970-01-01
    • 2020-03-17
    • 2021-09-01
    • 2012-08-06
    相关资源
    最近更新 更多