更改WSO2AM API令牌超时

时间:2017-12-14 04:36:27

标签: wso2 wso2-am

我正在处理使用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的值持续更长时间。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

        <!-- 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>

您还可以通过在API Manager中为每个具有相关值的应用程序更改生成的OAuth令牌的有效期来更改每个应用程序的有效时间/到期时间。