如何配置使用Spring引导和OAuth2.0登录的experiation和生成新的访问令牌



我已经使用OAuth 2.0授权实现了Spring Boot。

当我调用/outh/token端点时,我会收到下一个输出:

`{
"access_token": "03497838-790f-495f-91f4-029628ad084b",
"token_type": "bearer",
"refresh_token": "386ce1bd-5f76-4ea5-9091-5b46cec5429d",
"scope": "tester"
}`

问题是,我希望至少每小时接收一次新的访问令牌。我看到有可能配置";expire_in";但是我该怎么做呢?

我试图添加令牌有效性,但对没有帮助

@Bean
public AuthorizationServerTokenServices tokenServices() {
DefaultTokenServices tokenServices = new DefaultTokenServices();
tokenServices.setTokenStore(tokenStore());
tokenServices.setSupportRefreshToken(true);
tokenServices.setClientDetailsService(clientDetailsService());
//tokenServices.setTokenEnhancer(endpoints.getTokenEnhancer());
tokenServices.setAccessTokenValiditySeconds(10);
return tokenServices;
}
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) {
endpoints
.approvalStoreDisabled()
//.approvalStore(approvalStore())
.authorizationCodeServices(authorizationCodeServices())
.tokenStore(tokenStore())
.tokenServices(tokenServices())
.authenticationManager(authenticationManager)
.userDetailsService(restUserDetailsService);
}

我运行了不同的配置,有时它会禁用令牌,但更新后会创建新的令牌。

我发现默认的到期时间是12小时,这对我来说太长了

当Spring认为访问令牌无效并创建一个新令牌时,有什么方法可以指定吗?

我发现,如果你想让你的令牌过期,那么你需要设置验证令牌周期数据库中access_toke_validity列中的表oauthclient_details。然后接收到的令牌将具有部分"0";expires_ in";到期后,您将获得新的代币。

最新更新