如何维持路线之间的会话。
我有3条路线
var routes = require('./routes/index');
var users = require('./routes/users');
var question = require('./routes/question');
app.use('/', routes);
app.use('/users', users);
app.use('/question',question);
在3 js文件的顶部是:
var express = require('express');
var router = express.Router();
这创建了一个新的路由器,因此我想失去会话?
在用户中,我使用passport来创建登录系统,通过默认的序列化程序,用户信息保存在req.user下,但只能在用户路径中访问。
我想在路线(索引)和问题路线中使用会话。我该如何解决这个问题?
感谢,
答案 0 :(得分:1)
正如您所提到的,您已在其单独的文件中定义了每个请求特定的路由。 然后你不需要在主文件中再次定义这些行。
var express = require(' express'); var router = express.Router();
app.use(passport.session());
function ensureAuthenticated(req, res, next) {
// passport.js provides this method req.isAuthenticated())
if (req.isAuthenticated())
return next();
else
// Return error content: res.jsonp(...) or redirect: res.redirect('/login')
}
在这里,您可以定义检查路线的策略。如果是认证,则披露用户相关信息。
app.use('/', ensureAuthenticated, routes);