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