Angular 6-身份验证管理员用户和root用户

时间:2018-06-25 16:43:49

标签: node.js angular express passport.js mean-stack

我创建了一个MEAN堆栈应用程序。我使用Passport模块设置了用户身份验证。我遵循了这个tutorial。 这可以正常工作。

但是,我想添加管理员用户,并希望获得一些建议。 我考虑过在用户模型中添加这样的参数:

const userSchema = new Schema({
  _id: {
    type: Schema.Types.ObjectId,
    required: true
  },
  firstname: {
    type: String,
    required: true
  },
  lastname: {
    type: String,
    required: true
  },
  email: {
    type: String,
    unique: true,
    required: true
  },
  admin: {
    type: boolean,
    unique: true,
    required: true
  },
  hash: String,
  salt: String
});

这是个好主意还是有更好的方法?

2 个答案:

答案 0 :(得分:1)

是的,可以通过这种方式完成,通常我所看到的是它们具有一系列角色。一个用户可能拥有不同的特权或不止一个。可以是用户+管理员,或其他。例如,取决于用例。

答案 1 :(得分:1)

您可以那样做,并将其用作Angular护卫的标准。在设计应用程序的其余部分时,请记住您的后端永远不要信任您的客户端,因为它很容易被欺骗。只有服务器应该确定哪些角色归属于每个经过身份验证的用户,并为您的API的每个端点赋予正确的权限