我使用node.js
文档passport.js
和护照工作。
我的问题是,我可以使用LocalStrategy
针对不同的角色进行不同的身份验证吗?
我有常规用户和管理员用户,当然,有些页面仅供管理员使用。
答案 0 :(得分:4)
距离回答我自己的问题还有五分钟的时间。
您可以在带有护照的req.user中找到用户实体数据。
所以我可以使用这个
if (req.user.role == "Admin") {
// render page here
} else {
// redirect somewhere else
}
答案 1 :(得分:1)
您必须以一种方式设计您的数据库,以便您能够记住用户是管理员还是普通用户等(即您必须使数据保持不变)。
现在关于如何使用这种本地策略?我真的怀疑你在本地策略中需要它,除非你每次用他的用户名和密码请求新页面时都要求你的用户登录。您应该使用会话,您可以在用户反序列化方法中添加一个特殊的特殊req.role。
现在,对于每个视图,您需要检查用户的角色是否允许他查看它?您可以定义一个自定义策略来检查这个吗?在该策略中,只需检查req.user.role并允许每页的特定角色。
我希望这可以帮助你!!!