我正在尝试编写中间件进行身份验证。我希望这个if语句将用户重定向到'/'
,如果他们是而不是登录。如果他们已经登录,我不想将它们重定向到'/ news'。expressjs有条件重定向
/*Simplified for this example*/
if(rs.authenticated === true) {
next();
} else {
res.redirect('/');
}
有没有办法在这些if语句中做到这一点?或者我必须写一个新的方法?我用if语句尝试了几种方法,但我只是得到了重定向循环。
的,如果在我的例子声明实际上是从一个方法(我用它来保护线路,auth.restrict),我有叫LOGGED_IN,我使用的非保护线路因此,如果他们已经登录的另一种方法在他们被重定向到'/ news'而不是停留在登录页面上。我只是想,如果我可以使用所有路线的一种方法。但是,也许使用两种不同的方法是更好的选择? – georgesamper
那么你需要逻辑来避免重定向循环,所以你需要检查'req.path'并且只有在它们不是已经请求'/'的时候才将它们重定向到'/',或者遵循我的建议。 –
如果我只是渲染视图,而不是重定向,则不会将数据传递给它。有没有办法解决这个问题? – georgesamper