javascript - Passport JS - 一张登录表单 - 根据用户角色重定向到不同的 URI

标签 javascript node.js express passport.js

我使用 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/

相关文章:

node.js - 通过Node.js中的http.ServerResponse将二进制缓冲区发送到客户端

node.js - node-ffi 模块无法加载 32 位 C dll - 动态链接错误

node.js - 如何更改socket.io 获取socket.io.js JavaScript 文件的文件夹?

javascript - jQuery 以对象或数组形式获取数据

javascript - 自动平滑向下滚动页面

node.js - express 和上传文件

node.js - Webpack 2 与 Multipage Express Web 应用程序

javascript - 如何检查 Pac 脚本的响应

javascript - 当光标悬停在文本上时显示图像

node.js - 即使在设置代理后,npm install express --save 命令也会给出 403 禁止错误