Я использую учетные данные клиента OAuthRestTemplate и не поддерживает токен refre sh из коробки. Поэтому я вручную проверяю токен доступа перед каждым вызовом API для клиента и устанавливаю нулевой токен доступа по истечении срока действия токена, как показано ниже. Таким образом, Spring снова вызовет токен доступа с учетом appseacret и appKey. Есть ли недостатки этого подхода? Приведет ли этот подход какие-либо возможные ошибки?
private void checkTokenExpiry() {
OAuth2ClientContext oAuth2ClientContext = oAuth2RestOperations.getOAuth2ClientContext();
if (oAuth2ClientContext == null) {
return;
}
OAuth2AccessToken accessToken = oAuth2ClientContext.getAccessToken();
if (accessToken != null && (accessToken.getExpiresIn() > 5000 || accessToken
.isExpired())) { //5 seconds
log.info("Token expired");
oAuth2RestOperations.getOAuth2ClientContext()
.setAccessToken(null); //to re-fetch the token
}
}