我有一个带有一堆文件(js,html,css)和带有护照身份验证的nodejs应用程序的角应用程序。 我想做以下事情: 1:如果我访问我的网站,我想看一个登录页面(我实际上是) 2:当我成功登录时,我想重定向到我的角度应用程序 3:没有身份验证,我希望我的每个角色资源(imgs,jsons等)都无法访问。 到目前为止,我可以将我的应用程序放到一个文件夹,将其设置为静态,通过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');
});
如果我遗漏了一些明显的东西,请告诉我或如果我完全走错了路线,请向我建议一些解决方案! 谢谢大家!
注意:我对护照很新,而不是快递/ nodejs专家。
答案 0 :(得分:0)
我不太了解护照,但我认为你可以为静态路径创建中间件
app.get('/*', function (req, res, next) {
console.log('middleware');
next();
});
app.use(express.static(path.join(__dirname, 'public')));