Как мне сделать REST-запрос Oauth2, используя Node и node-rest-client? - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь скопировать пример запроса POST из документации (https://www.npmjs.com/package/node-rest-client, https://www.npmjs.com/package/node-rest-client#basic-http-auth). Как мне закодировать этот curl запрос в узле?

$ curl -u user:password localhost:8080/oauth/token -d grant_type=client_credentials
{"access_token":"c6b53866-b38a-41f9-878c-87bb280ca9d8","token_type":"bearer","expires_in":43199,"scope":"write"}

У меня есть это

var oauth = {
    data: { grant_type: "client_credentials" },
    headers: { "Content-Type": "application/json" }
};
var options_auth = { user: "user", password: "password" };
var client = new Client(options_auth);

client.post("http://127.0.0.1:8080/oauth/token", oauth, function (data, response) {
    // parsed response body as js object
    console.log(data);

Но оно дает мне ошибку

[2019-10-15T00:40:23.780Z] { error: 'invalid_request', error_description: 'Missing grant type' }

Сервер OAuth - это Spring Boot, чего он стоит.

1 Ответ

0 голосов
/ 15 октября 2019

Мне пришлось изменить значение заголовков:

    headers: { "Content-Type": "application/x-www-form-urlencoded" }

Теперь он дал мне токен доступа:

[2019-10-15T00:58:15.354Z] {                           
  access_token: 'c6b53866-b38a-41f9-878c-87bb280ca9d8',
  token_type: 'bearer',                                
  expires_in: 41873,                                   
  scope: 'write'                                       
}                                                      
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...