我陷入一个问题。从标题可以猜到,问题是我正在制作重定向循环。简单的情况,但是作为一个初学者,我无法解决。我将提供我的代码供您查看问题。 这就是我的快速路由器`
const passport = require('passport');
module.exports = (app) => {
app.get('/auth/eventbrite',
passport.authenticate('eventbrite', {}));
app.get('/auth/eventbrite/callback',
passport.authenticate('eventbrite', { failureRedirect: '/' }),
(req, res) => {
if (!req.user) {
throw new Error('user null');
}
res.redirect('/dashboard');
});
app.get('/api/logout', (req, res) => {
req.session = null;
req.logout();
res.redirect('/');
});
app.get('/api/current_user', (req, res) => {
res.send(req.user);
});
app.get('/dashboard', (req, res) => {
console.log(req.user, 'user');
if (!req.user) {
res.redirect('/');
} else {
res.redirect('/dashboard');
}
});
};
您会注意到,在护照认证和获取请求中,我都将用户重定向到/ dashboard。我的目标是防止未经身份验证的用户进入仪表板。
答案 0 :(得分:0)
如果用户已登录并重定向到仪表板,则该仪表板会将其再次重定向到仪表板。这将产生一个无限循环。相反,如果用户已登录,则仪表板路由应响应。您最有可能希望向他发送仪表板html页面。