每次 React 向 Express 发送请求时,都会生成一个新的会话

2024-03-06

I use React作为客户端发送请求Express with proxy and express-session设置。但每次 React 向 Express 服务器发出请求时,都会创建一个新会话。因此,我通过手动访问相同的 api url 来单独检查 Express,并且每次刷新页面时它都会使用相同的会话。

项目结构:

project-folder
 - client // React client with proxy set up
      + src
      + package.json
      + ...
 - server.js
 - package.json

Inside server.js:

const session = require('express-session');

let sessionConf = {
    name: 'aoid',
    secret: 'stackoverflow',
    resave: true,
    saveUninitialized: true,
    rolling: true,
    cookie: {
        httpOnly: false,
        secure: false,
        maxAge: 2000000
    }
};

app.use(session(sessionConf));

app.get('/api/prod', (req, res, next) => {
    let sessionId = req.sessionID;  // is generated each time React client send request, works fine with api alone!
    console.log(sessionId);

    if (!sessionId) return res.status(401).send('Unauthorized Error');
    res.status(200).send({ data });
});

以下是 React 客户端向 Express 发送请求的方式:

let loadItems = async () => {
    const response = await fetch('/api/prod');
    const body = await response.json();

    if (response.status !== 200) throw Error(body.message);
    return body;
}

我认为问题来自于 React 和 Express 之间的错误配置。以前有人遇到过这个问题吗?


fetch https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch不发送cookie默认情况下,您需要显式设置它:

fetch(url, {
  method: 'GET',
  credentials: 'include',
  // ...
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每次 React 向 Express 发送请求时,都会生成一个新的会话 的相关文章

随机推荐

  • 文本分类方法?支持向量机和决策树

    我有一个训练集 我想使用分类方法根据我的训练集对其他文档进行分类 我的文档类型是新闻 类别是体育 政治 经济等 我完全理解朴素贝叶斯和KNN 但是SVM和决策树很模糊 我不知道我是否可以自己实现这个方法 或者有使用这种方法的应用程序吗 我可
  • 从母版页调用 Html.RenderPartial

    这是一个场景 假设我的网站有两个控制器 负责显示不同类型的内容 页面和文章 我需要将部分视图嵌入到我的母版页中 该母版页将列出按某些条件过滤的页面和文章 并显示在每个页面上 我无法在我的主页上设置模型 我是对的吗 如何使用 Html Ren
  • iPhone 应用程序在设备上崩溃,找不到文件

    我看到这个错误 无法读取 Developer Platforms iPhoneOS platform DeviceSupport 4 3 2 8H7 Symbols Developer usr lib libXcodeDebuggerSup
  • 无符号整数增量会导致未定义的已定义行为吗?

    读完后64 位上的 32 位无符号乘法会导致未定义的行为吗 https stackoverflow com q 27001604 1806289在 StackOverflow 上的问题中 我开始思考小型无符号类型上的典型算术运算是否会导致根
  • 如何正确使用九块图像

    我想创建某种看起来像这样的行图像 但我希望它能够随着屏幕尺寸和密度而缩放 所以读这篇文章http developer android com guide developing tools draw9patch html http devel
  • python virtualenv 未使用正确版本的 python

    我正在创建一个 Django 应用程序 需要我使用 python2 7 6 我的系统安装了 python3 4 1 所以我必须使用安装了 python2 7 的 virtualenv 我使用 Pycharm 安装了这样一个 virtuale
  • Rails 3:如何用英语以外的语言格式化日期?

    格式化一个Date用英语我做 Date today to s long ordinal gt September 28th 2011 如何用俄语 或任何其他语言 格式化日期 有的是Rails 中的国际化 API http guides ru
  • django-allauth - 使用 Gmail 帐户发送电子邮件验证

    我已经设置 allauth 为每个新注册用户发送一封电子邮件 以便可以验证他们的电子邮件 现在我使用 email backend 以便将电子邮件发送到终端 一切正常 但现在我想可以将其全部设置好 以便发送电子邮件 并且因为我 可能 在主机服
  • 如何使用 jQuery 在带有动画的表格中添加新行?

    这就是我正在做的在表中添加新行的操作 function expandAll myTableID gt tbody gt tr gt td nth child 2 gt div nth child 2 each function html t
  • android同时显示SIM卡和手机联系人

    在我的代码中 我应该只显示电话联系人 我遵循了之前的帖子 但仍然显示电话和 SIM 卡联系人 这是我的代码 Uri uri ContactsContract CommonDataKinds Phone CONTENT URI String
  • DateTime 为空字符串或 null?如何检查?

    Q 我想检查日期时间null value如果日期时间为空 则清空报告中的单元格 但我不知道如何执行此操作 它看起来像这样1 1 0001如果它是空的 我希望它是空单元格 这是我的数据集中的数据类型 这是我的列的表达式值 FormatDate
  • 是否有 IntelliJ Java Profiler [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 IntelliJ 是否有像 Matlab 那样的 Profiler 假设你有这个代码 a true i 0 while a if a i
  • ORA-04084: 无法更改此触发器类型的新值

    我正在尝试打开 pl sql 触发器 该触发器在故事更改时计算表中某些单元格的总数 这是代码 ALTER session SET nls date format dd mm yyyy CREATE OR REPLACE TRIGGER TO
  • Go 中可以有函数指针吗?

    我正在学习 Go 中的指针 并设法写出类似的东西 func hello fmt Println Hello World func main pfunc hello pfunc is a pointer to the function hel
  • 2 轴 Reportlab 图

    我通过重叠条形图和线罐 成功在 ReportLab 中创建了一个 2 轴图 对于对类似内容感兴趣的任何人来说 这里是代码 from reportlab graphics shapes import Drawing colors from r
  • 让 htmlParse 与希伯来语一起工作?

    我希望 htmlParse 能够很好地处理希伯来语 但它不断地扰乱我输入的页面中的希伯来语文本 例如 why can t I parse the Hebrew correctly library RCurl library XML u ht
  • 如何使用 Codeigniter PHP 将 CSV 导入数据库?

    我正在尝试使用 csv 插入记录 我想将 csv 上传到我的应用程序并希望将其导入数据库 现在我有一个用户表 所以我想通过导入用户的 csv 文件来创建用户 我对文件上传了解一点 但对将其导入数据库一无所知 请帮助 请参阅我已使用以下命令完
  • Jetpack compose - 当应用程序返回前台时如何刷新屏幕

    当应用程序返回前台时 我需要自动刷新 Android Compose 屏幕 我有一个需要权限和位置服务的 如果用户关闭了其中任何一项 则会绘制一个需要更改的项目列表 当用户转到 设置 并且应用程序返回前台时 我希望刷新列表以反映更改 我正在
  • Android WebView 硬件加速 Artefact 解决方法

    Android 中的 WebView 硬件加速存在一个已知的错误 例如 请参见此处 https code google com p android issues detail id 17352 https code google com p
  • 每次 React 向 Express 发送请求时,都会生成一个新的会话

    I use React作为客户端发送请求Express with proxy and express session设置 但每次 React 向 Express 服务器发出请求时 都会创建一个新会话 因此 我通过手动访问相同的 api ur