您好,我遇到了一个问题,阻止用户通过输入URL来访问我的网站。我有一个登录名,我希望它是访问我的/factory/homepage.html
页的唯一方法。
但是,如果用户在URL字段中键入/factory/homepage.html
,则他们可以访问homepage.html。
我已经在使用app.get('/factory/')
,但是我的res.redirect('/website/userLogin.html')
没有重定向到登录页面。
这是我的代码:
app.get('/factory/*', function(req,res,next){
console.log("going through app.get...");
res.redirect('../website/userLogin.html');
console.log('after redirect...');
});
输出为:
going through app.get...
after redirect...
然后用户被带到
factory/homepage.html
。我也尝试过app.use('/factory/*')
,但是没有运气。仅当输入了我的工厂目录中不存在的路径时,重定向才有效,例如,/factory/hello.html
将重定向到/website/userLogin.html
我希望通过输入URL不能访问目录
/factory
。然后,我将实现中间件功能,以检查用户是否已通过身份验证。任何帮助将不胜感激!
最佳答案
我会尝试这样的事情。
app.get('/factory/*', function(req,res,next){
var authenticated = false;
//do something to authenticate user
if(authenticated === true){
//user is already authenticated
res.redirect('/factory/homepage.html');
}else{
//redirect to login
res.redirect('../website/userLogin.html');
}
});
关于javascript - 如何防止用户直接在node.js中访问网页?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34909706/