2017-01-17 7 views
0

Я использую аутентификацию PassportJS для своего приложения React. Вход, кажется, работает правильно, когда я использую браузер для аутентификации и входа в систему, GET и POST данных для конечных точек. Однако, когда я пытаюсь получить данные из API внутри среагировать компонента, я получаю ошибку 500 от сервера говоря req.user является undefinedReact wont отправляет req.user в конечную точку API, браузер возвращает объект как ожидалось

Сообщение срабатывает внутри моего компонента, используя fetch()

_getItems(){ 
    fetch('/api/items').then(function(response) { 
     return response.json(); 
    }).then(function(j) { 
     console.log(j); 
    }); 
    } 

Что тогда возвращает 500, если я просто перехожу к конечной точке в браузере localhost/api/items Я вижу ожидаемый ответ без ошибок.

Любые идеи, что происходит, и почему React, похоже, не отправляет аутентифицированный запрос?

ответ

0

Получается, что для вызова fetch() необходимо явно предоставить доступ к файлам cookie сеанса {credentials: 'same-origin'}.

_getItems(){ 
    fetch('/api/items', {credentials: 'same-origin'}).then(function(response) { 
     return response.json(); 
    }).then(function(j) { 
     console.log(j); 
    }); 
    } 

Thanks @robertklep!