React不会将req.user发送到API端点,浏览器按预期返回对象

时间:2017-01-17 05:33:03

标签: javascript node.js reactjs express passport.js

我正在为我的React应用程序使用PassportJS身份验证。当我使用浏览器对端点进行身份验证和登录GETPOST数据时,登录似乎正常工作。但是,当我尝试从react组件中的API检索数据时,我从服务器收到500错误,指出req.userundefined

使用fetch()

在我的组件内触发帖子
   _getItems(){
     fetch('/api/items').then(function(response) {
        return response.json();
     }).then(function(j) {
        console.log(j);
     });
   }

然后返回500,如果我然后只是转到浏览器中的端点localhost/api/items我看到预期的响应没有错误。

任何想法是什么,以及为什么React似乎没有发送经过身份验证的请求?

1 个答案:

答案 0 :(得分: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);
     });
   }

谢谢@robertklep