Как я могу создать пользователя MongoDB из моего приложения NodeJS с включенной аутентификацией? - PullRequest
0 голосов
/ 31 августа 2018

Я использую MongoDB с Mongoose на удаленном сервере, я подключаюсь через приложение NodeJS следующим образом:

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

Это отлично работает, я также установил authorization = enabled в файле mongod.conf на моем сервере и создал администратора. Знайте, что я хочу подключиться к моей MongoDB по указанному ниже URL-адресу и создать нового пользователя, но когда я делаю это, я получаю ошибку аутентификации.

Я знаю, что я также могу подключиться через аутентификацию, как это

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."
            });
        });
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...