我正在处理使用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
的值持续更长时间。
答案 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令牌的有效期来更改每个应用程序的有效时间/到期时间。