ExpressJS: отправка запроса аутентификации заголовка - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть API для аутентификации пользователя с помощью LDAP, и мне была предоставлена ​​информация, которая включает Content-Type: application / json и имя пользователя и пароль для заголовка запроса, а затем имя пользователя и пароль для передачи в теле,Я попробовал приведенный ниже код, но он не работает.Я хочу знать, правильно ли я передаю запрос заголовка или нет.

router.post('/user', function(req, res){
      var auth = {
          content-type: "application/json",
          username: "abcd",
          password: "xyze"
      }

      auth.post('/user', {username: req.body.username, password: req.body.password"}, function(response) {
             console.log(response);
      })

})

1 Ответ

0 голосов
/ 13 ноября 2018

Рассмотрите возможность использования пакета axios для выполнения ваших запросов: https://www.npmjs.com/package/axios

Эта ссылка имеет раздел «Создание экземпляра, показывающий, как вы можете установить заголовок:

var instance = axios.create({
  baseURL: 'https://some-domain.com/api/',
  timeout: 1000,
  headers: {'X-Custom-Header': 'foobar'}
});

Как только заголовок установлен, вызовите метод post, например так:

instance.post('/my/specific/endpoint/', myData);

В следующем примере вы можете передать токен аутентификации в качестве заголовка вашего запроса:

import axios from 'axios';
const MY_BASE_URL = 'https://www.myserver.com/';
class MyLdapService {
  static xhr(accessToken) {
    const options = {
      baseURL: MY_BASE_URL,
      headers: {
        Authorization: `Bearer ${accessToken}`,
        'Content-Type': 'application/json',
      },
    };
    return axios.create(options);
  }
  static async myPostEndpoint(accessToken, data) {
    return new Promise((resolve, reject) => {
      this.xhr(accessToken).post('my-endpoint/', data)
        .then(result => resolve(result.data.card))
        .catch(err => reject(this.createError(err)));
    });
  }
}

Таким образом, вы можете вызвать конечную точку POST следующим образом:

MyLdapService.myPostEndpoint('my_access_token', {});
...