Я ввел /api/login
для входа в систему. У меня также есть страница login.js
, которая отправляет данные формы в API входа в систему. Мой логин api проверяет учетные данные пользователя в моей базе данных, а затем подписывает токен и сохраняет его для повара ie. Мой /api/login
:
await authCollection.findOne(
{
authCode: req.body.authcode,
},
function(err, doc) {
if (err) throw err;
if (!doc) return res.status(400).send('auth not found');
if (doc) {
const token = jwt.sign({ _id: doc._id }, process.env.TOKEN_SECRET);
res
.status(200)
.cookie('token', token, {
maxAge: 2 * 60 * 60 * 1000,
httpOnly: false,
})
.send(token);
}
},
);
Я могу защитить свои маршруты API с помощью промежуточного программного обеспечения, как это:
function(req, res, next) {
const token = req.cookies.token || '';
if (!token) {
return res.status(401).send('Access denied');
}
try {
const decrypt = jwt.verify(token, process.env.TOKEN_SECRET);
req.user = {
id: decrypt.id,
firstname: decrypt._id,
};
next();
} catch (err) {
res.status(400).send('Invalid token');
}
}
Я не понимаю, как я могу защитить обычные страницы, которые в моем каталоге /pages
. Может ли кто-нибудь дать мне подсказку в правильном направлении? Я уже погуглил и прочитал каждую страницу, но не смог реализовать