1

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

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

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

4

2 回答 2

4

我离回答我自己的问题还有五分钟的路程。

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

所以我可以用这个

if (req.user.role == "Admin") {
  // render page here
} else {
  // redirect somewhere else
}
于 2013-07-21T06:11:00.450 回答
1

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

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

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

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

于 2013-07-21T07:08:18.527 回答