Как использовать сеанс и файлы cookie для express.use (express.static («статический»))? - PullRequest
1 голос
/ 05 июля 2019

У меня есть вопрос о сессионных куки-файлах через Интернет из экспресс-бэкэнда.Спереди я использую Vue PWA / SPA, который монтируется на 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));

После этого я надеюсь, что смогу прочитать myCookie=cookieValue в браузере через document.cookie, но я не вижу этих датр, напечатанных на странице.

Я также попробовал это с помощью метода __dirname, а затем

app.get("/", function(req, res) {
  req.session.fullname = "Oh mi gee";
  res.render("index");
});

не дал мне то, что я хочу.Есть ли способ добавить сеанс / файлы cookie, чтобы я мог в некоторой степени защитить вызовы API, передавая данные cookie в заголовок для подтверждения?

Заранее спасибо!

1 Ответ

0 голосов
/ 09 июля 2019

Я понял, это разместить express.static в самом конце экспресс-конфигурации.

прежде чем мы установим express.static мы хотим сделать

app.use('/path', (req, res, next) => {
  req.session.views++;
  res.cookie('myCookie', 'cookieValue', {
    maxAge: 1000 * 60 * 30
  });
  console.log(req.session);
  next();
})

переведет куки на клиентскую сторону по истечении получаса.

...