Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 使用passport保护静态文件夹_Angularjs_Node.js_Express_Passport.js - Fatal编程技术网

Angularjs 使用passport保护静态文件夹

Angularjs 使用passport保护静态文件夹,angularjs,node.js,express,passport.js,Angularjs,Node.js,Express,Passport.js,我有一个带有一堆文件(js、html、css)的angular应用程序和一个带有passport auth的nodejs应用程序。 我想做以下几点: 1:如果我访问我的网站,我希望看到一个登录页面(实际上我是) 2:当我成功登录时,我希望被重定向到我的angular应用程序 3:如果没有auth,我希望我的每个角度资源(imgs、JSON等)都无法访问。 到目前为止,我可以将我的应用程序放在一个文件夹中,将其设置为静态,将经过ensureAuthenticated的中间件(在任何其他情况下,如果

我有一个带有一堆文件(js、html、css)的angular应用程序和一个带有passport auth的nodejs应用程序。 我想做以下几点: 1:如果我访问我的网站,我希望看到一个登录页面(实际上我是) 2:当我成功登录时,我希望被重定向到我的angular应用程序 3:如果没有auth,我希望我的每个角度资源(imgs、JSON等)都无法访问。 到目前为止,我可以将我的应用程序放在一个文件夹中,将其设置为静态,将经过ensureAuthenticated的中间件(在任何其他情况下,如果我登录的话,它都会成功检测)传递给它,但当我尝试访问该静态文件夹时,它总是说“unauthenticated”。一些示例代码:

function ensureAuthenticated(req, res, next){
    if(req.isAuthenticated()){
        return next();
    } else {
        //req.flash('error_msg','You are not logged in');
        res.redirect('/users/login');
    }
}

app.use('/app', ensureAuthenticated);
app.use('/app', express.static(path.join(__dirname, 'app')));

router.get('/users/login', function(req, res){
    res.render('login');
});
router.post('/users/login',
  passport.authenticate('local', {successRedirect:'/', failureRedirect:'/users/login',failureFlash: true}),
  function(req, res) {
    res.redirect('/');
  });

router.get('/', ensureAuthenticated, function(req, res){
    res.redirect('/app');
});
如果我遗漏了一些明显的东西,请让我知道,或者如果我完全走错了方向,请给我建议一些解决方案! 谢谢大家!


注意:我是passport的新手,不是express/nodejs专家

我不太了解passport,但我认为您可以为静态路径创建中间件

app.get('/*',函数(req,res,next){
log(“中间件”);
next();
});
app.use(express.static(path.join(uu dirname,'public'))