Узел - автоматическое сохранение учетных данных в файл file.htpasswd при добавлении нового пользователя. - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть база данных Монго, и я читаю эту статью: https://www.sitepoint.com/build-simple-beginner-app-node-bootstrap-mongodb/ Я видел, что благодаря http-auth можно защитить.Теперь, когда я сохраняю свои записи в db:

router.post('/login', function (req, res) {
  console.log(req.body);
  const registration = new Registration(req.body);
  registration.save()
    .then(() => { 
        res.send('Thank you for your registration!' + req.body.name);
        });
      })
    .catch(() => { res.send('Sorry! Something went wrong.'); });      
});

, но я не могу найти ничего, что позволяло бы писать прямо в файл .htpasswd.

Мое намерение состоит в том, чтобы автоматически предоставить доступ на чтение всем зарегистрированным пользователям.Для этого обновили код таким образом

router.post('/login', function (req, res) {
  console.log(req.body);
  const registration = new Registration(req.body);
  registration.save()
    .then(() => { 
        res.send('Thank you for your registration!' + req.body.name); 
        var crypted = crypto.createHash('md5').update(req.body.name).digest("hex");
        fs.appendFile(path.join(__dirname, '../users.htpasswd'), '\n' +req.body.name+':'+ crypted, function (err) {
          if (err) throw err;
          console.log('Saved!');    
        });
      })
    .catch(() => { res.send('Sorry! Something went wrong.'); });      
});

Но когда я пытаюсь получить доступ к конкретной странице:

router.get('/registrations', auth.connect(basic), (req, res) => {
    Registration.find()
      .then((registrations) => {  res.send(registrations)
        })
      .catch(() => { res.send('Sorry! Something went wrong.'); });
});

система выдает мне ошибку.

...