Я не уверен, безопасен ли этот метод проверки подлинности сеанса. Я шифрую пароль с помощью 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!'});
}
});