我使用 Passport JS 来处理身份验证,并使用 Express JS 来处理我的路由。
目前,我有一个登录路由,成功后会转到 /teacher
URI。 (如下图)。
app.post('/login', passport.authenticate('local-login', {
successRedirect: '/teacher', // redirect to the teacher profile section
failureRedirect: '/login', // redirect back to the login page if there is an error
failureFlash: true // allow flash messages
}));
我的申请由三个主要部分组成:教师、家长、学生。
我已经构建了应用程序的教师端,但现在希望构建学生和家长,
在我的 Passport JS session 中,我有 req.user.group
它告诉我用户是教师、家长还是学生。
是否有任何方法可以根据登录应用程序的用户类型重定向到不同的位置。
例如,如果家长要登录,它将转到 /parent
和学生 /student
谢谢。
最佳答案
app.post('/login', passport.authenticate('local-login', function(err, user, info){
var error = err || info;
if (error) return res.status(401).json(error);
if (!user) return res.status(404).json({message: 'Something went wrong, please try again.'});
else {
if(req.user.group==='Teacher'){
res.redirect('/teacher');
}
else if(req.user.group==='Parent'){
res.redirect('/parent');
}
else{
res.redirect('/student');
}
}
}));
关于javascript - Passport JS - 一张登录表单 - 根据用户角色重定向到不同的 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35042622/