如何通过启用身份验证的NodeJS应用程序创建MongoDB用户?

时间:2018-08-31 11:53:32

标签: node.js mongodb security

我在远程服务器上将MongoDB与Mongoose结合使用,通过这样的NodeJS应用程序进行连接:

mongodb://3.xxx.xxx.xxx:xxxx/test

这很好,我还在服务器上的authorization = enabled文件中设置了mongod.conf并创建了一个管理员。知道我想使用下面的URL连接到我的MongoDB并创建一个新用户,但是当我这样做时,出现身份验证错误。

我知道我也可以通过身份验证进行连接

mongodb://admin:pw@3.xxx.xxx.xxx:xxxxx/test?authsource=admin

创建新用户没问题,但是那不安全(?)

我想要一个随机用户,可以在我的MongoDB上创建用户,然后他可以对其进行身份验证,以获取读取和写入权限。对我而言,随机用户以管理员身份创建新用户毫无意义。 我在想什么问题吗?

这是我通过NodeJS应用创建用户的方式:

    exports.create = (req, res) => {
    if (!req.body.mail && !req.body.password) {
        return res.status(400).send({
            message: "User conntent can not be empty"
        });
    }

    const user = new User({
        mail: req.body.mail,
        password: req.body.password,
    });

    user.save()
        .then(data => {
            res.send(data);
        }).catch(err => {
            res.status(500).send({
                message: err.message || " Some error occurred while creating user."
            });
        });
};

0 个答案:

没有答案