NodeJS Passport:可以验证角色吗?

时间:2013-07-21 06:07:14

标签: node.js

我使用node.js文档passport.js和护照工作。

我的问题是,我可以使用LocalStrategy针对不同的角色进行不同的身份验证吗?

我有常规用户和管理员用户,当然,有些页面仅供管理员使用。

2 个答案:

答案 0 :(得分:4)

距离回答我自己的问题还有五分钟的时间。

您可以在带有护照的req.user中找到用户实体数据。

所以我可以使用这个

if (req.user.role == "Admin") {
  // render page here
} else {
  // redirect somewhere else
}

答案 1 :(得分:1)

您必须以一种方式设计您的数据库,以便您能够记住用户是管理员还是普通用户等(即您必须使数据保持不变)。

现在关于如何使用这种本地策略?我真的怀疑你在本地策略中需要它,除非你每次用他的用户名和密码请求新页面时都要求你的用户登录。您应该使用会话,您可以在用户反序列化方法中添加一个特殊的特殊req.role。

现在,对于每个视图,您需要检查用户的角色是否允许他查看它?您可以定义一个自定义策略来检查这个吗?在该策略中,只需检查req.user.role并允许每页的特定角色。

我希望这可以帮助你!!!