如何防止用户直接在node.js中访问网页?

时间:2016-01-20 20:19:42

标签: javascript node.js express response.redirect

您好我遇到了阻止用户通过输入网址访问我的网站的问题。我有一个登录信息,我想成为访问/factory/homepage.html页面的唯一方法。 但是,如果用户在网址字段中输入/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

我希望通过输入网址无法访问目录/factory。然后我将实现一个中间件函数来检查用户是否经过身份验证。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我会尝试这样的事情。

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');
   }
});