我创建了一个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
});
这是个好主意还是有更好的方法?
答案 0 :(得分:1)
是的,可以通过这种方式完成,通常我所看到的是它们具有一系列角色。一个用户可能拥有不同的特权或不止一个。可以是用户+管理员,或其他。例如,取决于用例。
答案 1 :(得分:1)
您可以那样做,并将其用作Angular护卫的标准。在设计应用程序的其余部分时,请记住您的后端永远不要信任您的客户端,因为它很容易被欺骗。只有服务器应该确定哪些角色归属于每个经过身份验证的用户,并为您的API的每个端点赋予正确的权限