node.js - 快速会话不存在
问题描述
我正在制作一个React 项目,并且我使用Express作为后端。我设置http://mini-api.moonlab.ga
为 Express 服务器的虚拟主机。
我发送了一个 HTTP 请求来表达服务器Fetch
:
fetch("http://mini-api.moonlab.ga/login/", {
credentials: "include"
})
正如我所料,有一个CORS错误。所以我安装了cors
包,我在 Node.js 中设置了这样的代码:
app.use(cors({
origin: true,
credential: true
}));
我像这样从服务器响应客户端:
app.get("/login", (req, res) => {
const session = req.session;
if (session.miniAccount == undefined) {
session.miniAccount = Math.floor(Math.random() * 1000000);
}
res.writeHead(200, {"Access-Control-Allow-Credentials": true});
res.write(String(session.miniAccount));
res.end();
})
在我这样做之后,没有任何 CORS 错误,但会话不会持续存在。当我再次发送请求时,会话数据会保持更改。
那么如何使会话持续存在?
服务器的会话代码:
app.use(express_session({
secret: secret.app_key,
resave: false,
saveUninitialized: true
}));
解决方案
我自己通过编辑解决了package.json
。
我"proxy": "mini-api.moonlab.ga"
在package.json
.
比我编辑fetch()
的 .
- 以前的
fetch("http://mini-api.moonlab.ga/login")
- 新的
fetch("/login")
它奏效了。
推荐阅读
- laravel - 维护模式与中间件在 Laravel 中重定向
- node.js - 使用浏览器 GET 请求访问 tcp 服务器
- angular - 在 Angular 中将 cookie 添加到 HttpClient POST
- oracle - SSDT 与 Oracle 的独立连接
- java - android.view.View.performClick(View.java:5610)
- javascript - 维护下拉菜单中的选定值
- javascript - LocalStrategy Passport 返回 null
- javascript - 异步 IIFE 模块 - 缓存结果并且在进一步需要时不返回承诺
- php - 在 Woocommerce 单品中将价格移至简短描述下方
- java-8 - Redhat Jboss Server (sweet 32) 生日攻击中的漏洞