如何正确地将管理员用户添加到数据库?

假设我有一个用于发布新用户的端点,其逻辑如下:


    ...

    user = new User(_.pick(req.body, ['name', 'email', 'password', 'isAdmin']));

    const salt = await bcrypt.genSalt(10);

    user.password = await bcrypt.hash(user.password, salt);


    await user.save();


    const token = user.generateAuthToken();

    ...

这可行,但现在当然每个用户都可以设置该isAdmin标志。另一种方法是将管理员用户手动添加到数据库中,但这可能不是最好的方法。


有推荐的方法来解决这个问题吗?


HUH函数
浏览 73回答 2
2回答

慕田峪7331174

您可以执行以下操作:第 1 步:superadmin手动创建一个给isAdmin= 2步骤2:以上创建的superadmin只能添加/注册子管理员,给isAdmin= 1步骤 3:最后,从正常注册中,您可以给出isAdmin= 0so isAdmin= 2(超级管理员),isAdmin= 1(子管理员)和isAdmin= 0(普通用户)注意:2,1 值isAdmin是我的建议,您可以根据需要进行更改。

白衣非少年

您可以在数据库中手动添加超级管理员用户(例如级别 0),或使用JS脚本(node initDb.js例如)。然后,每当一个用户想要添加另一个用户时,您只需检查他是否没有添加具有相同权限的用户,每个用户只能添加一个具有n + 1. 这样,超级管理员用户将能够使用level >= 1、 等添加用户。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript