我目前正在尝试限制未登录用户的路由。我的主要问题是,即使我定义了一个使用GET方法的页面:
app.get('/alpha/information', isLoggedIn,
function(req, res){
res.sendFile(path.join(__dirname + '/alpha/pages/Example.html'));
});
用户可以轻松地编辑URL:
http://localhost:3000/alpha/pages/Example.html
并访问该页面。我已经在SO上阅读了几个类似的问题,但是我找不到答案。其中一些启发我的问题是:Q1,Q2,Q3。尽管如此,我仍然无法找到解决我的问题的方法。我的当前文件结构是: FileStructureLink 我试图限制对Example.html、ExampleTwo.html和blabla.html的访问。
我使用以下代码来设置请求,但我猜它们可能不正确:
app.use(express.static(path.join(__dirname, 'Alpha')));
app.use(express.static(path.join(__dirname, '/')));
app.use('/', express.static(__dirname + '/login.html'));
这个 app.use('/', express.static(__dirname + '/login.html'));
特别是用来让默认的 localhost:3000/
载入为 localhost:3000/login
我如何限制访问所有静态html文件而不必为每一个编写路由?
中间件函数:
function isLoggedIn(req, res, next) {
console.log('here is Authenticated', req.isAuthenticated())
if (req.isAuthenticated()){
return next();
}
res.redirect('/login');
}