繁体   English   中英

如何将会话和Cookie用于express.use(express.static('static'))?

[英]How do I use session and cookies for express.use(express.static('static'))?

我有一个关于来自后端的网络会话cookie的问题。 在前面,我使用的是Vue PWA / SPA,它已通过express.use(express.static('static'));安装在express static上express.use(express.static('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");
});

没有给我我想要的东西。 我是否可以添加会话/ Cookie,以便通过在标头上传递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传输到客户端。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM