我知道可以通过 express 控制会话开始并连接中间件。就像这里建议的那样:Controlling Session Start with express and connect middleware
是否可以使用 LocomotiveJS 控制会话开始?
我不想为每个用户启动会话 - 我只想在用户成功登录时启动它。
我已经在 MongoDb 中存储了会话(未来我将使用 Redis)并为每个进入页面的用户创建不需要的会话似乎是一种资源浪费。
我知道可以通过 express 控制会话开始并连接中间件。就像这里建议的那样:Controlling Session Start with express and connect middleware
是否可以使用 LocomotiveJS 控制会话开始?
我不想为每个用户启动会话 - 我只想在用户成功登录时启动它。
我已经在 MongoDb 中存储了会话(未来我将使用 Redis)并为每个进入页面的用户创建不需要的会话似乎是一种资源浪费。
我刚刚找到了解决方案:可能LcomotiveJS本身并不直接支持,但是使用Express可以很容易地实现(而Locomotive在它之上)。
而不是将会话声明为:
this.use(express.cookieParser());
this.use(express.session({
secret: '123qwemax',
cookie: {maxAge: 60 * 60 * 1000},
store: new MongoStore({
url: 'mongodb://localhost:27017/tests'
}),
}));
将您的会话声明为:
this.get(/^\/login\/.*/, express.cookieParser());
this.get(/^\/login\/.*/, express.session({
secret: '123qwemax',
cookie: {maxAge: 60 * 60 * 1000},
store: new MongoStore({
url: 'mongodb://localhost:27017/tests'
}),
}));
这样,只要我们进入 /login/.* 页面,会话就会开始。
我不知道为什么这一切都不起作用......