Исключение для токена доступа Outh2 - PullRequest
1 голос
/ 23 февраля 2020

Я внедряю Outh2 для аутентификации в весенней загрузке приложения. Я получаю код авторизации успешно, но когда я делаю пост-запрос к URL-адресу токена по шаблону rest, это выдает мне исключение 400 bad Request. Из-за этого исключения я не могу Чтобы определить проблему. Ниже приведен мой код.

        ResponseEntity<String> response = null;
        System.out.println("Authorization Ccode------" + code);

        RestTemplate restTemplate = new RestTemplate();
        HttpHeaders headers = new HttpHeaders();
        headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
        HttpEntity<String> request = new HttpEntity<String>(headers);
        String access_token_url = "https://www.googleapis.com/oauth2/v3/token";
        access_token_url += "?code=" + code;
        access_token_url += "&client_id =487786082511-ta7fnptb8dnd4lbq9lphbtbpll9eo1it.apps.googleusercontent.com";
        access_token_url += "&client_secret  =fS4KHLUUMOm-lYu8QtDOFcDV";
        access_token_url += "&grant_type=authorization_code";
        access_token_url += "&redirect_uri=http://localhost:8080/salesgoal/googleOuth2Success";
        try {
        response = restTemplate.exchange(access_token_url, HttpMethod.POST, request, String.class);
        }
        catch(Exception e){

            e.printStackTrace();

Пожалуйста, дайте мне знать, что я делаю неправильно. Спасибо

1 Ответ

1 голос
/ 23 февраля 2020

Следуя документации Google oauth2

Код обмена для токена доступа и идентификатора токена Ответ содержит параметр кода, одноразовый код авторизации, который ваш сервер может обменять на токен доступа и токен идентификатора. Ваш сервер осуществляет этот обмен, отправляя запрос HTTPS POST. Запрос POST отправляется конечной точке токена, которую вы должны извлечь из документа Discovery, используя значение метаданных token_endpoint. В следующем обсуждении предполагается, что конечная точка равна https://oauth2.googleapis.com/token. Запрос должен включать следующие параметры в теле POST: enter image description here

При выполнении их документации могут быть проверки параметров url (которые дают 400 Bad Запросить код ошибки)

Пожалуйста, проверьте следующее:

  1. Redirect_uri - URL_encoded (с помощью UrlEncoder )

  2. Параметры URL не содержат пробелов (отметьте client_id и client_secret)

Позже Редактировать:

Также попробуйте следовать спецификации oauth2, используя 'Content-Type', 'application/x-www-form-urlencoded' заголовки в запросе / token
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...