【发布时间】:2017-05-22 11:00:21
【问题描述】:
我有一个带有一堆文件(js、html、css)的 angular 应用程序和一个带有护照身份验证的 nodejs 应用程序。 我想做以下事情: 1:如果我访问我的网站,我想看到一个登录页面(我实际上是) 2:当我成功登录时,我想被重定向到我的 Angular 应用程序 3:没有身份验证,我希望我的每个角度资源(imgs、jsons 等)都无法访问。 到目前为止,我可以将我的应用程序放到一个文件夹中,将其设置为静态,将 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');
});
如果我遗漏了一些明显的东西,请告诉我,或者如果我完全走错了路,请给我一些解决方案! 谢谢大家!
注意:我对护照相当陌生,无论如何都不是 express/nodejs 专家。
【问题讨论】:
标签: angularjs node.js express passport.js