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

С 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, и он отлично работает.


person Abdennour TOUMI    schedule 15.10.2016    source источник


Ответы (1)


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

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

Два подводных камня:

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