更改 WSO2AM API 令牌超时

Change WSO2AM API token timeouts

我正在从事使用 WSO2AM 数据的项目。我正在按照 https://docs.wso2.com/display/AM210/apidocs/publisher/#guide 中的步骤进行操作,一切正常。

我想更改已登录用户的令牌过期时间(不是应用程序订阅令牌)。我所知道的唯一实现这一目标的方法是 changing the configuration on the WSO2 application 本身。

有没有其他方法可以从消费者端获取数据?也许通过将过期持续时间作为查询字符串?

这是获取令牌的 curl 命令:

curl -k -d "grant_type=password&username=admin&password=admin&scope=apim:api_view" -H "Authorization: Basic SGZFbDFqSlBkZzV0YnRyeGhBd3liTjA1UUdvYTpsNmMwYW9MY1dSM2Z3ZXpIaGM3WG9HT2h0NUFh" https://localhost:8243/token

这是回复:

{
    "scope":"apim:api_view",
    "token_type":"Bearer",
    "expires_in":3600,
    "refresh_token":"33c3be152ebf0030b3fb76f2c1f80bf8",
    "access_token":"292ff0fd256814536baca0926f483c8d"
}

基本上我希望响应中 expires_in 的值持续更长时间。

根据the OAuth2 spec,不允许用户请求令牌到期时间。因此,它是服务器端配置。

但是,WSO2 为客户端凭据授予类型提供了此功能,以便于开发人员使用不同的令牌到期时间测试他们的应用程序。

您可以通过更改“conf/identity/identity.xml[=中的以下配置来简单地增加 OAuth 令牌和刷新令牌的过期时间。 17=]

        <!-- Default validity period for Authorization Code in seconds -->
        <AuthorizationCodeDefaultValidityPeriod>300</AuthorizationCodeDefaultValidityPeriod>
        <!-- Default validity period for application access tokens in seconds -->
        <AccessTokenDefaultValidityPeriod>3600</AccessTokenDefaultValidityPeriod>
        <!-- Default validity period for user access tokens in seconds -->
        <UserAccessTokenDefaultValidityPeriod>3600</UserAccessTokenDefaultValidityPeriod>
        <!-- Validity period for refresh token -->
        <RefreshTokenValidityPeriod>84600</RefreshTokenValidityPeriod>
        <!-- Timestamp skew in seconds -->
        <TimestampSkew>300</TimestampSkew>

您还可以更改每个应用程序的有效期 time/expiration 时间,方法是使用 API 管理器中的相关值更改每个应用程序生成的 OAuth 令牌的有效期。