Как обновить access_token на стороне сервера (JAVA)? - PullRequest
0 голосов
/ 27 октября 2018

Я использую загрузочную пружину в качестве моего внутреннего приложения.Я сохранил 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"
}

Какую ошибку я допустил?Спасибо

1 Ответ

0 голосов
/ 27 октября 2018

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...