为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

HUH函数 2023-10-14 18:16:11
假设我有一个用于发布新用户的端点,其逻辑如下:    ...    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标志。另一种方法是将管理员用户手动添加到数据库中,但这可能不是最好的方法。有推荐的方法来解决这个问题吗?
查看完整描述

2 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

您可以执行以下操作:

第 1 步:superadmin手动创建一个给isAdmin= 2

步骤2:以上创建的superadmin只能添加/注册子管理员,给isAdmin= 1

步骤 3:最后,从正常注册中,您可以给出isAdmin= 0

so isAdmin= 2(超级管理员),isAdmin= 1(子管理员)和isAdmin= 0(普通用户)

注意:2,1 值isAdmin是我的建议,您可以根据需要进行更改。


查看完整回答
反对 回复 2023-10-14
?
白衣非少年

TA贡献1155条经验 获得超0个赞

您可以在数据库中手动添加超级管理员用户(例如级别 0),或使用JS脚本(node initDb.js例如)。

然后,每当一个用户想要添加另一个用户时,您只需检查他是否没有添加具有相同权限的用户,每个用户只能添加一个具有n + 1. 这样,超级管理员用户将能够使用level >= 1、 等添加用户。


查看完整回答
反对 回复 2023-10-14
  • 2 回答
  • 0 关注
  • 68 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信