如何解决如何使用Express&Passportjs检查
我有一个正在运行的NodeJS Web应用程序,它具有表达,猫鼬,通行证js以及与此问题无关的其他模块。
有两种类型的用户,每种类型在我的数据库中都有自己的集合。
- 用户
- 管理员
当用户成功通过登录页面登录时,他们将被重定向到“ / memberdashboard”。 同样,当管理员通过登录页面成功登录后,他们将被重定向到“ / admindashboard”。
两个集合都有一个“用户名”和“密码”字段。 但是,在我的Admin集合中,有一个额外的字段“ isAdmin”,其类型为Boolean。
我想根据他们是否是管理员来重定向登录我网站的人。
例如,如果userA具有{“ isAdmin”:true},它们将被重定向到/ admindashboard,否则它们将被重定向到/ memberdashboard。
一些代码可能有助于解释我要实现的目标。
app.get("/memberdashboard",function(req,res) {
if(req.isAuthenticated()) {
res.render("memberdashboard");
} else {
res.redirect("/member");
}
});
app.get("/admindashboard",res) {
if(req.isAuthenticated()) {
res.render("admindashboard");
} else {
res.redirect("/admin");
}
});
我的目标是利用它
if(req.isAuthenticated() && //User is Admin) {
//redirect to appropriate page
}
希望这很清楚:)
解决方法
用户经过身份验证后,
Afaik护照将填充req.user
。因此,您可以将/membershipdashboard
的支票扩展为:
if (req.isAuthenticated()) {
if (req.user.isAdmin) {
return res.redirect("/admin");
}
res.render("memberdashboard");
} else {
res.redirect("/member");
}
对于/admindashboard
路由,您可以反之亦然。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。