Является ли этот метод аутентификации экспресс-сеанса безопасным - PullRequest
0 голосов
/ 10 ноября 2018

Я не уверен, безопасен ли этот метод проверки подлинности сеанса. Я шифрую пароль с помощью bcryptjs и после шифрования устанавливаю req.session.isLoggedIn = true в admin.js, а затем проверяю его в events.js с помощью оператора if. Является ли метод оператора if в events.js безопасным или каким-либо образом уязвимым? Есть ли лучший вариант? Я использую руль для рендеринга веб-страниц.

admin.js

bcrypt.compare(pass, user.password).then((doMatch) => {
    console.log(doMatch);
    //Check if password match
    if (doMatch) {
      //setting the isLoggedIn value
      req.session.isLoggedIn = true;
      //Events is the route that requires authentication
      return res.redirect('/events');
    } else {
      res.redirect('/');
    }
  }).catch((err) => {
    console.log(err);
  });

events.js

Router.get('/', (req, res) => {
//Checking the if the loggedIn value is true
if (req.session.isLoggedIn) {
Event.find({}, (err, events) => {
  res.render('events', {
    prods: events,
    pageTitle: 'Events',
    path: '/events',
    hasProducts: events.length > 0
  });
}).catch((err) => {
  console.log(err);
});
} else {
  console.log('User not authenticated');
  res.status(404).send({error: 'not authorized!'});
}

});

1 Ответ

0 голосов
/ 10 ноября 2018

Я не думаю, что это лучший метод, на который вам стоит взглянуть: http://www.passportjs.org/

У них есть хорошая документация о стратегиях аутентификации и регистрации, а также много других методов (Facebook login, Twitter ..).) также есть много уроков о том, как реализовать Passport.js

Надеюсь, это поможет вам!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...