Я использую 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."
});
});
};