Ошибка «Необходимо указать поле grant_type» при получении токена Oauth2

0

У меня есть простой node.js BACKEND построить на Restify с разрешением oauth2 (restify-oauth2 плагин).

У меня проблема с запросом на токен. Когда я вызываю метод POST с моим клиентом REST, все работает правильно, и я получаю access_token и token_type.

Проблема возникает, когда я пытаюсь сделать то же самое в своей утилите frontend, сделанной в Angular.

Вот мой код:

 var req = {
     method: 'POST',
     url: 'http://localhost:8080/token',
     headers: headers,
     data: {},
     params: {grant_type: "client_credentials"}
 };

 $http(req).success(function(data, status, headers, config){
     console.log('success');
 }).error(function(data, status, headers, config){
     console.log('error');
 });

Таким образом, как вы видите, grant_type параметр grant_type. Но все же сервер отвечает:

{"error":"invalid_request","error_description":"Must specify grant_type field."}

И вот скриншот devtools:

Изображение 174551

Как мне изменить свой запрос, чтобы он работал?

Теги:
oauth-2.0
restify

1 ответ

0
Лучший ответ

Я, наконец, решил. Дело в том, что поле grant_type должно быть передано внутри тела запроса, а не в параметрах.

Код рабочего запроса:

var req = {
  method: 'POST',
  url: 'http://localhost:8080/token',
  headers: headers,
  data: "grant_type=client_credentials"
};

$http(req).success(function(data, status, headers, config){
  console.log('success');
}).error(function(data, status, headers, config){
  console.log('error');
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню