У меня есть простой 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:
Как мне изменить свой запрос, чтобы он работал?
Я, наконец, решил. Дело в том, что поле 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');
});