反应前端的api调用之间没有持续的快速会话

时间:2018-03-19 10:46:01

标签: node.js reactjs express axios express-session

在问这个问题之前,我确实看过其他类似的问题,但是到目前为止还没有任何帮助。

我有一个使用axios的反应前端,使用快速和快速会话对节点后端进行api调用。一旦我在前端输入登录信息,我就将它发送到我的后端,在那里我设置一个会话并返回我在localStorage中设置的前端的响应,用于客户端验证。

当我尝试访问受保护的api端点 - 从前端 - 登录后,会话没有我在其中设置的任何信息,因此,给我一个错误。但是,如果我尝试登录并从邮递员访问受保护的端点,它可以正常工作。

这是我的快速会话配置:

router.use(session({
 secret: 'notGoingToWork',
 resave: false,
 saveUninitialized: true
}))

这是api调用(登录后)我通过axios进行编写:

axios.get(`http://localhost:5000/users/personNotes/${JSON.parse(userData).email}`)
    .then(response => console.log(response);

我不知道问题是什么,并希望得到任何帮助。提前谢谢!

3 个答案:

答案 0 :(得分:3)

尝试使用withCredentials

axios(`http://localhost:5000/users/personNotes/${JSON.parse(userData).email}`, {
  method: "get",
  withCredentials: true
})

axios.defaults.withCredentials = true

答案 1 :(得分:1)

您可以使用 axios 尝试name,company_id/id,location_dest_id/id,picking_type_id/id,move_type,location_id/id,move_lines/product_id/.id,move_lines/product_uom_qty,move_lines/date_expected,move_lines/location_dest_id/id,move_lines/name,move_lines/date,move_lines/location_id/id,move_lines/procure_method,move_lines/product_uom/id,partner_id/.id IMPORT0001,base.main_company,stock.stock_location_stock,stock.picking_type_in,As soon as possible,stock.stock_location_suppliers,1000,40,2019-04-05 19:41:54,stock.stock_location_stock,"Digitizer (Black, OEM, Apple iPad)",2019-04-07 08:32:24,stock.stock_location_suppliers,Default: Take From Stock,product.product_uom_unit,705 withCredentials

对于从truecredentials提取也将起作用。

include

答案 2 :(得分:0)

要与...一起使用提取

credentials: 'include'

我还必须在Express App.js中添加以下内容。

请注意,不能使用凭据将“ Access-Control-Allow-Origin”设置为“ *”。它必须使用特定的域名。

res.setHeader(
        'Access-Control-Allow-Origin',
        'http://localhost:3000'
    );
res.setHeader('Access-Control-Allow-Credentials', 'true');