Как обновить access_token на стороне сервера (JAVA)?

В качестве серверного приложения я использую весеннюю загрузку. Я сохранил access_token, refresh_token и access_id нашего клиента в своей базе данных postgresql.

Вот мой код пытается получить новый токен доступа, если срок действия токена истек.

public void refreshGoogleIdToken(GoogleAuthEntity googleAuthEntity) {
        LOGGER.debug("GoogleAuthService.refreshGoogleIdToken()");
        GoogleCredential credential = new GoogleCredential.Builder()
                .setTransport(transport)
                .setJsonFactory(jsonFactory)
                .setClientSecrets(googleAuthClientId, googleAuthClientSecret)
                .build();
        credential.setAccessToken(googleAuthEntity.getAccessToken());
        credential.setRefreshToken(googleAuthEntity.getRefreshToken());
        try {
            if (credential.refreshToken()) {
                Long newExpireTime = credential.getExpirationTimeMilliseconds();
                String newAccessToken = credential.getAccessToken();
                String newRefreshToken = credential.getRefreshToken();
                LOGGER.debug("NewAccessToken: " + newAccessToken);
                LOGGER.debug("NewRefreshToken: " + newRefreshToken);
                LOGGER.debug("NewExpireTime: " + newExpireTime);
            }
        } catch (IOException e) {
            LOGGER.debug("GoogleAuthService.refreshGoogleIdToken() - IOException");
            e.printStackTrace();
        }
    }

Google возвращает ошибку 400 с описанием: 400 Bad Request.

{
  "error" : "invalid_grant",
  "error_description" : "Bad Request"
}

Какую ошибку я совершил? Спасибо

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
0
0
61
1

Ответы 1

Я использовал OAuth2 с фреймворком Spring и столкнулся с этой ошибкой «Недействительный грант» только в том случае, если токен обновления недействителен, истек, отозван или не соответствует URI перенаправления, используемому в запросе авторизации, или выдается другому клиенту

В вашей ситуации я думаю, вам следует удалить сохраненный токен обновления / исправить его и снова отладить свой код. Это может быть из-за неправильной информации о токене, хранящейся в вашей базе данных PostgreSQL во время тестирования.

Другие вопросы по теме