gpt4 book ai didi

javascript - 服务前操纵 Cookie

转载 作者:搜寻专家 更新时间:2023-11-01 00:41:13 24 4
gpt4 key购买 nike

场景

我有一个使用 Express 框架的简单 NodeJS 服务器。我有一些需要服务的 ReactJS 页面。目前没有同构。

在服务之前,我想检查用户是否有特定的 cookie,然后基于此我想创建一个新的 cookie。

我尝试了什么

这是我的 server.js 文件的代码。

var express = require("express");
var app = express();
var Cookies = require("cookies");

app.use(function(req, res){
var cookies = new Cookies( req, res);
var userCookie = cookies.get("sso");
var isLoggedIn = cookies.get("isLoggedIn");

if(userCookie !== undefined && isLoggedIn === false){
cookies.set("isLoggedIn", true);
}
});


app.use(express.static(__dirname + '/build'));

var port = process.env.PORT || 8080;
app.listen(port, function() {
console.log("Listening on " + port);
});

所以我使用 express.static 来提供来 self 的 build 文件夹的静态文件。

我尝试将 app.use(express.static(__dirname + '/build')); 行移动到之前的 app.use 上方,但随后代码永远不会进入 cookie 部分。

我试过这个简单的东西。即使这样也没有用。我可以看到日志 hello,但该网站无法正常工作。

var express = require("express");
var app = express();

app.use(function(req, res){
console.log("hello");
});

app.use(express.static(__dirname + '/build'));

var port = process.env.PORT || 8080;
app.listen(port, function() {
console.log("Listening on " + port);
});

最佳答案

您对 cookie 的使用存在问题。您正在检查 isLoggedIn,cookie 值,=== false, bool 值。但是 cookie 始终是字符串,因此比较始终是 false,您永远不会将 isLoggedIn 设置为 "true"

如果您更新代码以将值视为字符串,它可能会起作用。尝试这样的事情:

if(userCookie !== undefined && isLoggedIn !== "true"){
cookies.set("isLoggedIn", "true");
}

关于javascript - 服务前操纵 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33968297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com