如何使用 session 和 express.use(express.static('static')) 的 cookie?
How do I use session and cookies for express.use(express.static('static'))?
我有一个关于 session 来自 express 后端的 web cookie 的问题。在前面,我使用的是 Vue PWA/SPA,它通过 express.use(express.static('static'));
安装在 express static 上以提供构建的文件。
我做了一些研究,我们可以使用
将选项附加到函数
express.use(cookieParser());
express.use(session({
secret : `${uuid()}`,
proxy: true,
resave: false,
saveUninitialized: false,
cookie: {
maxAge: 1000 * 60 * 30
}
}))
const options = {
dotfiles: 'ignore',
etag: false,
extensions: ['html', 'htm'],
index: false,
maxAge: '1d',
redirect: false,
setHeaders: function(res, path, stat) {
res.set('Set-Cookie', "myCookie=cookieValue;Path=/");
res.set('x-timestamp', Date.now());
}
}
express.use(express.static('static' , options));
完成这些之后,希望我可以通过 document.cookie
在浏览器上阅读 myCookie=cookieValue
,但我没有看到那些数据打印在页面上。
我也试过用__dirname
方法,然后做
app.get("/", function(req, res) {
req.session.fullname = "Oh mi gee";
res.render("index");
});
没有给我想要的。有没有办法让我添加 session/cookies 以便我可以通过在 header 上传递 cookie 数据进行确认来在某种程度上保护 API 调用?
提前致谢!
我想通了,就是把这个express.static
放在express配置的最后
在我们建立 express.static
之前,我们需要做
app.use('/path', (req, res, next) => {
req.session.views++;
res.cookie('myCookie', 'cookieValue', {
maxAge: 1000 * 60 * 30
});
console.log(req.session);
next();
})
将在半小时后将cookie传输到客户端。
我有一个关于 session 来自 express 后端的 web cookie 的问题。在前面,我使用的是 Vue PWA/SPA,它通过 express.use(express.static('static'));
安装在 express static 上以提供构建的文件。
我做了一些研究,我们可以使用
将选项附加到函数express.use(cookieParser());
express.use(session({
secret : `${uuid()}`,
proxy: true,
resave: false,
saveUninitialized: false,
cookie: {
maxAge: 1000 * 60 * 30
}
}))
const options = {
dotfiles: 'ignore',
etag: false,
extensions: ['html', 'htm'],
index: false,
maxAge: '1d',
redirect: false,
setHeaders: function(res, path, stat) {
res.set('Set-Cookie', "myCookie=cookieValue;Path=/");
res.set('x-timestamp', Date.now());
}
}
express.use(express.static('static' , options));
完成这些之后,希望我可以通过 document.cookie
在浏览器上阅读 myCookie=cookieValue
,但我没有看到那些数据打印在页面上。
我也试过用__dirname
方法,然后做
app.get("/", function(req, res) {
req.session.fullname = "Oh mi gee";
res.render("index");
});
没有给我想要的。有没有办法让我添加 session/cookies 以便我可以通过在 header 上传递 cookie 数据进行确认来在某种程度上保护 API 调用?
提前致谢!
我想通了,就是把这个express.static
放在express配置的最后
在我们建立 express.static
之前,我们需要做
app.use('/path', (req, res, next) => {
req.session.views++;
res.cookie('myCookie', 'cookieValue', {
maxAge: 1000 * 60 * 30
});
console.log(req.session);
next();
})
将在半小时后将cookie传输到客户端。