您好,我遇到了一个问题,阻止用户通过输入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/

10-12 14:21