gpt4 book ai didi

javascript - expressjs 条件重定向

转载 作者:行者123 更新时间:2023-11-30 13:01:29 26 4
gpt4 key购买 nike

我正在尝试编写用于身份验证的中间件。如果用户登录,我希望此 if 语句将用户重定向到 '/'。如果他们已登录,我不想重定向他们到“/新闻”。

/*Simplified for this example*/

if(rs.authenticated === true) {
next();
} else {
res.redirect('/');
}

有没有办法在这些 if 语句中执行此操作?还是我必须写一个新方法?我已经尝试了几种使用 if 语句的方法,但我只是得到了重定向循环。

最佳答案

标准模式适用于所有要求登录用户使用中间件的页面,该中间件验证登录用户并在用户未登录时重定向到 /

function loggedIn(req, res, next) {
if(req.authenticated === true) {
next();
} else {
res.redirect('/');
}
}

app.get('/news', loggedIn, newsRoute);
app.get('/', homeRoute);

你的问题是你正在为所有路由使用中间件,而你真的只想将它用于 protected 路由,这就是你的重定向循环发生的地方。如果您想将登录用户发送到“/news”而不是“/”,您可以只呈现正确的模板或在其中进行条件重定向。

function homeRoute(req, res) {
if (req.authenticated) {
return res.redirect('/news');
}
res.render('home');
}

关于javascript - expressjs 条件重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17307131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com