В настоящее время я работаю над полным стековым веб-проектом MEAN для небольшого рыночного приложения. Сборка этого проекта в 3 части:
- сервер -> node.js экспресс мангуста
- передняя стенка -> угловая 4
- передний мобильный -> ионный
Мне нужно создать этот простой API REST с классическим CRUD, но я должен использовать JWT для защиты своих объявлений (для рынка).
Пользователь сможет удалять или изменять только те рекламные объявления, которые он сам создает, используя проверку JWT.
В настоящее время у меня есть промежуточное ПО для проверки токена, но оно не мешает пользователю удалить объявление, созданное другим пользователем.
Я называю свое промежуточное ПО, как я понял по учебникам, это можно изменить.
И после долгих исследований я нашел только информацию об аутентификации с помощью JWT, тогда, если кто-то может помочь, спасибо.
//my token verification's middle-ware
function verifyToken(req, res, next) {
var token = req.headers['x-access-token'];
if (!token)
return res.status(403).send({ auth: false, message: 'No token provided.' });
jwt.verify(token, config.secret, function(err, decoded) {
if (err)
return res.status(500).send({ auth: false, message: 'Failed to authenticate token.' });
// if everything good, save to request for use in other routes
req.userId = decoded.id;
next();
});
}
//an example of middle-ware call
router.delete('/:id',VerifyToken, (req, res) => {
advertModel.findById(req.params.id, (err, advert) => {
if(!advert){
res.json({message:"No advert corresponding"})
}
advert.remove((err) => {
if(err){
console.log(err);
}
res.json({message: 'Successfully deleted'});
});
});
});
Это приложение все еще находится в стадии разработки, и если у вас есть какие-либо комментарии, которые позволили бы мне улучшить несколько фрагментов кода, которые вы видите, перейдите.