我能够在我的AuthorizationServerConfigurerAdapter
中使用Spring Security制作OAuth令牌:
@Override
public void configure(final ClientDetailsServiceConfigurer clients) throws Exception {
clients
.inMemory()
.withClient(AppConst.CLIENT_ID)
.secret(AppConst.CLIENT_SECRET)
.authorizedGrantTypes(AppConst.GRANT_TYPE_PASSWORD, AppConst.GRANT_TYPE_REFRESH_TOKEN)
.scopes(AppConst.TOKEN_HEADER)
// Here I provide the validity timeperiod
.accessTokenValiditySeconds(AppConst.ACCESS_TOKEN_VALID_SECONDS);
}
所以我的用例是,我想为移动的应用程序用户(比如1周)和Web应用程序用户(比如1小时)提供不同的令牌有效期。
除了全球配置之外,如何才能做到这一点?
1条答案
按热度按时间llycmphe1#
要处理您的场景,最好区分两种类型的客户端(如移动的应用程序用户和Web应用程序用户)。这样,您就可以提供不同的OAuth令牌有效期。您需要做的是根据客户端ID或任何其他唯一属性来标识这些客户端。
在这种情况下,
MOBILE_APP_CLIENT_ID
和WEB_APP_CLIENT_ID
分别是移动的应用和Web应用用户的标识符。其访问令牌的相应有效期由MOBILE_APP_ACCESS_TOKEN_VALID_SECONDS
和WEB_APP_ACCESS_TOKEN_VALID_SECONDS
确定。因此,当服务器接收到OAuth令牌的请求时,它将根据客户端的身份分发具有有效期的令牌。希望这有帮助!