Node.js Express禁用自动会话创建

时间:2014-01-05 20:17:05

标签: javascript node.js session cookies express

如果我通过app.use(express.session({secret: "12345"}));启用快递的会话功能,则会在用户首次点击页面时设置会话cookie。

如何禁用此行为并手动决定何时创建Cookie,例如成功登录后?我知道我可以手动构建一个cookie-header,但我想继续使用express.session。

3 个答案:

答案 0 :(得分:2)

将会话支持定义为中间件,但不要使用use

var sessions = express.session({
    // etc
});

...

app.get('/', function (req, resp) {
    // No session
});

app.post('/user', sessions, function (req, resp) {
    // Has sessions

答案 1 :(得分:0)

想象一下,你有一个登录方法...我支持你可以这样做。

var sessionMW = express.session({secret:"12345"});

function login(req, res, next){
    //...
    if(success){
        return expressMW(req, res, next);
    }
}

答案 2 :(得分:0)

我不确定最初发布此问题时是否存在此选项,但是我可以将saveUninitialized选项设置为false来完成此操作。

https://github.com/expressjs/session#saveuninitialized