Node.js 在快速会话中过期不';行不通

Node.js 在快速会话中过期不';行不通,node.js,session,express-session,Node.js,Session,Express Session,我正在寻找终止会话的方法。这是我的计划 我想根据用户访问我的网站时的会话生成RSA公钥/私钥。我在他们刚到达我的网站时发送公钥,当他们尝试登录时,他们使用公钥加密他们的ID/PW,服务器用私钥解密。我需要在用户登录后终止每个会话,或者离开网站以保存服务器内存。所以我决定将超时设置为任何会话。无论他们是否登录,每个会话都将以这种方式删除 我发现我可以使用“expires”属性使会话在特定时间后被删除,但它不起作用 这是我的密码 var RedisStore = require('connect-r

我正在寻找终止会话的方法。这是我的计划 我想根据用户访问我的网站时的会话生成RSA公钥/私钥。我在他们刚到达我的网站时发送公钥,当他们尝试登录时,他们使用公钥加密他们的ID/PW,服务器用私钥解密。我需要在用户登录后终止每个会话,或者离开网站以保存服务器内存。所以我决定将超时设置为任何会话。无论他们是否登录,每个会话都将以这种方式删除

我发现我可以使用“expires”属性使会话在特定时间后被删除,但它不起作用

这是我的密码

var RedisStore = require('connect-redis')(session);
var redis = require("redis").createClient();
app.use(session({
    store: new RedisStore({host: 'localhost', port:6379, client:redis, 
resave:false}),
    secret: 'keyboard cat',
    expires : '1000'
}));


app.get('/logincheck', function(req, res){

  console.log('session check : ' + req.session.redSession);
  if(req.session.redSession){
    res.json({
      result : 'on'
    });
  }
  else {
    res.json({
      result : 'off'
    });
  }
});


app.post('/login', function(req, res) {
req.session.redSession = req.body.id;
console.log('session check : ' + req.session.redSession);

if (req.body.id == 'fuck' && req.body.password == 'you') {
    res.json({
        message: 'ㅊㅋ'
    });
    //sess.id = req.body.id;
    return;
} else {
    res.json({
        message: 'fuck you'
    });
    return;
}
});
我登录,等待超过一秒钟,然后发送/登录检查,但我得到了“上”。正如我所预料的,会话应该在一秒钟内过期,并且它会自行终止,所以req.session.redSession中不应该有任何内容,所以它必须返回“off”。但它在服务器端保留return'on'和console.log('session check:')并保留returns字符串(未定义)


我怎么想的不对?如何使会话在一秒钟后消失?

expires
cookie
选项(不是“直接”选项)的属性,您应该使用
maxAge
而不是
expires

app.use(session({
    store  : new RedisStore({host: 'localhost', port:6379, client:redis, 
resave:false}),
    secret : 'keyboard cat',
    cookie : {
      maxAge : 1000
    }
}));

根据您的设置,您可能还需要设置其他选项(因此)。

expires
cookie
选项的属性(不是“直接”选项),您应该使用
maxAge
而不是
expires

app.use(session({
    store  : new RedisStore({host: 'localhost', port:6379, client:redis, 
resave:false}),
    secret : 'keyboard cat',
    cookie : {
      maxAge : 1000
    }
}));

根据您的设置,您可能还需要设置其他选项(因此)。

我刚在您编写时编辑了我的代码,过期到cookie,但仍有相同的问题Session未过期确保已从浏览器中删除以前的所有cookie。我刚在您编写时编辑了我的代码,过期到cookie,但仍有相同问题会话未过期请确保已从浏览器中删除以前的所有cookie。