Базовая аутентификация: сбой supergaent OSX, успех на суперагенте Redhat, успех на Postman OSX,

#basic-authentication #darwin #superagent

#базовая аутентификация #дарвин #суперагент

Вопрос:

С помощью POSTMAN все в порядке :

Я передаю суперагенту те же заголовки, параметры, …, как показано ниже :

 const superagent = require('superagent');
const grab = require('ps-grab');


superagent.get('https://x.rathath.net/issue_statuses.json')
    .set({
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    })
    .auth(grab('--user'),grab('--password'))
    .send({})
    .end((error,response)=>{
        console.log(response.text);
    });
 

Однако это не удалось!

У меня есть сомнения в: суперагент Заголовок авторизации OSX .. Я имею в виду совместимость этих трех факторов .

Действительно, я запускаю тот же фрагмент javascript на компьютере Redhat, и он работает нормально.

Ответ №1:

Разница в том, что вы, вероятно, совершаете вызов в другой домен, а не в тот, где запущено ваше js-приложение. Это называется CORS. Когда вы делаете это в сочетании с аутентификацией, сервер должен возвращать заголовки CORS, говоря:

 access-control-allow-credentials: true
access-control-allow-origin: your-app-domain.here
 

Две ловушки:

  • Забывание .withCredentials() в вашем вызове суперагента. Это касается не только файлов cookie, но и аутентификации.
  • Сервер возвращает * вместо вашего домена, но это недопустимо в сочетании с аутентификацией.