Cookie与会话存储的混淆

时间:2019-06-16 22:12:25

标签: node.js cookies express-session

我正在使用以下Node.js代码创建“会话存储”以保留用户信息。这些文本文件保存在名为“ session-store”的文件夹中:

 var session = require('express-session');
 var FileStore = require('session-file-store')(session);

 app.use(session({
  store: new FileStore({path: './session-store'}),
 // using FileStore with express-session
 // as the store method, replacing the default memory store
  secret: 'secret_key',
  name: 'myadmin',
  resave: false,
  saveUninitialized: false,
  cookie: { maxAge: 60000, httpOnly: true, secure: false }  
 }));

app.get('/', function (req, res) {
 if (req.session.views) {
  req.session.views++;
 } else {
  req.session.views = 1;
 } 
});

我包含会话信息的文本文件似乎正确生成。但是我对它的正确用法有些困惑。在我的cookie(.txt)文件中,它正确报告了“视图”,例如““视图”:1“。但是,如果定义另一个变量,例如“ req.session.broadcast = String(req.body.usr);”我在文本文件中看不到此信息...为什么不包含此信息?这是因为包含cookie会话存储信息的.txt文件仅在初始“路由”上生成(即“ app.get('/',函数(req,res){...做东西}”)),并且Node.js代码中没有其他地方吗?(注意:我将“ req.session.broadcast”设置为不同于“首页”路由的其他路由...我想这是Cookie文件生成的时间...可能吗?)。

我只是在尝试正确地管理用户...因此,我希望能够为每个唯一的用户浏览器正确设置和跟踪某些会话变量。

“ req.session.user”和/或req.session变量是否为“硬编码”变量?我相信在将浏览器定向到网页时会设置它们,但是如何将其用于终止会话?如果用户关闭了浏览器(使用右上角的“ x”),或者如果用户将其浏览器定向到另一个网页,它们是否会自动变为空??

在这些问题上的任何帮助以及任何其他建议,将不胜感激。

0 个答案:

没有答案