Конфиденциальным клиентам не разрешается использовать тело запроса при аутентификации? - PullRequest
0 голосов
/ 02 марта 2019

Я использую Java-клиент Google oauth для получения токена доступа с помощью кода авторизации.Я получаю вышеуказанную ошибку, не уверен, что не так.Вот код, который я использую

    TokenResponse response = new AuthorizationCodeTokenRequest(
            new NetHttpTransport(), new JacksonFactory(), 
            new GenericUrl(TOKEN_END_POINT), authorizationCode
    )
    .setRedirectUri(REDIRECT_URI)
    .setClientAuthentication(new ClientParametersAuthentication(CLIENT_ID, CLIENT_SECRET))
    .execute();

1 Ответ

0 голосов
/ 03 марта 2019

Я, наконец, нашел ответ после долгих попыток.Почти потребовался 1 день, чтобы найти ответ.Вот решение.

final String encString = Base64.getEncoder().encodeToString((clientId+":"+clientSecret).getBytes());

    TokenResponse response = new AuthorizationCodeTokenRequest(
            new NetHttpTransport(), new JacksonFactory(), 
            new GenericUrl(TOKEN_ENDPOINT), authorizationCode
    )
    .setRequestInitializer(new HttpRequestInitializer() {
        public void initialize(HttpRequest request) throws IOException {
            request.getHeaders().setAuthorization("Basic "+encString);
        }
    })
    .setRedirectUri(REDIRECT_URI)
    .execute();
...