Ваш access_token автоматически обновляется с помощью refresh_token.
Но когда ваш токен refresh_token истекает, вы все равно можете столкнуться с той же ошибкой. Чтобы справиться с этим, вы можете сделать так, чтобы ваш refresh_token автоматически обновлялся одновременно с получением нового access_token. Используйте reuseRefreshTokens (false) в конфигурации AuthorizationServerEndpointsConfigurer в коде сервера аутентификации:
Взгляните на метод refreshAccessToken в классе DefaultTokenServices:
public OAuth2AccessToken refreshAccessToken(String refreshTokenValue,
TokenRequest tokenRequest) {
// Omitted
if (!reuseRefreshToken) {
tokenStore.removeRefreshToken(refreshToken);
refreshToken = createRefreshToken(authentication);
}
// Omitted
}
Вы должны как-то установить флаг reuseRefreshToken в false. Вы можете сделать это в своей реализации AuthorizationServerConfigurerAdapter:
@Configuration
@EnableAuthorizationServer
public class AuthorizationServer extends AuthorizationServerConfigurerAdapter {
// Other methods
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints
.reuseRefreshTokens(false);
}
}