我正在使用 express 开发一个简单的网站。我只是对如何在渲染任何页面之前让 nodejs 检查会话感到困惑,这样如果用户没有登录,他就看不到任何东西。
我认为在 Rails 中这很简单,只需在应用程序控制器中添加一些代码即可。但是如何在nodejs中处理这样的事情?
定义一个中间件函数以在您的路由之前检查身份验证,然后在您的每个路由上调用它。例如在你的 app.js
// Define authentication middleware BEFORE your routes
var authenticate = function (req, res, next) {
// your validation code goes here.
var isAuthenticated = true;
if (isAuthenticated) {
next();
}
else {
// redirect user to authentication page or throw error or whatever
}
}
然后在你的路由中调用这个传递这个方法(注意 authenticate 参数):
app.get('/someUrl', authenticate, function(req, res, next) {
// Your normal request code goes here
});
app.get('/anotherUrl', authenticate, function(req, res, next) {
// Your normal request code goes here
});