Есть ли какой-либо недостаток в запросе токена доступа вместо использования токена refre sh для получения токена доступа? - PullRequest
0 голосов
/ 03 марта 2020

Я использую учетные данные клиента 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
        }
    }
...