我正在开发一个node.js应用程序,我正在使用护照来构建OAuth身份验证系统。在配置后,我可以通过每个资源加载中的请求对象访问用户。但我的问题是:如何在每次加载URL之前检查 - 使用app.get定义的资源('/',function(..){...}) - 如果用户是loged并且重定向客户端,如果不是loged。我只能在每种方法中添加测试,但这不是我想要的。
谢谢!
答案 0 :(得分:2)
您需要一个用于检查用户是否已登录的中间件。
isAuthenticated = function (req, res, next) {
if (req.user)
return next(); // All good, let the route handler process the request.
else
res.redirect('/login'); // Not logged in.
}
并在每个需要登录的路线上使用它:
app.get('/something', isAuthenticated, function (req, res) {
// Only in here if the user is authenticated.
});
您也可以通过执行app.use(isAuthenticated)
在每条路径上使用中间件,但是您需要在方法中使用额外的逻辑来不创建到/login
的无限重定向循环等。