React не будет отправлять req.пользователь в конечную точку API, браузер возвращает объект как ожидалось

Я использую аутентификацию PassportJS для моего приложения React. Логин, кажется, работает правильно, когда я использую браузер для аутентификации и входа в систему, GETа POSTданные для конечных точек. Тем не менее, когда я пытаюсь получить данные из API в рамках компонента react, я получаю ошибку 500 от сервера, говоряreq.user, что undefined

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

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

Which then returns a 500, if i then simply go to the endpoint in the browser localhost/api/itemsI see the expected response without error.

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

1 ответ

  1. Оказывается, вызов fetch () должен быть явно предоставлен доступ к сеансовым cookie {credentials: 'same-origin'}.

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

    Спасибо @robertklep !