Routes post avec node js express mysql
Bonjour,
J'ai un souci d'authentification sur mes routes post , par contre pour tout le reste cela fonctionne. J'ai créé un middleware d'authentification :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| module.exports = async (req, res, next) => {
try {
const token = req.headers.authorization.split(' ')[1];
const decodedToken = jwt.verify(token, process.env.JWT_TOKEN);
const id_user = decodedToken.id_user;
if (req.body.id_user && req.body.id_user !== id_user) {
throw 'User id non valide ! ';
} else {
next()
}
}catch (error) {
res.status(401).json({ error: error , message: 'Requête non authentifiée !'});
}
}; |
j'ai donc ajouter à mes routes 'auth ' :
Code:
1 2 3 4 5
| router.post('/',auth, multer, postCtrl.createPost);
router.put('/:id',auth, multer, postCtrl.modifyPosts);
router.get('/',auth, postCtrl.getAllPosts);
router.get('/:id',auth, postCtrl.getOnePosts);
router.delete('/:id',auth, postCtrl.deletePosts); |
pour toutes mes autres routes : get, delete, et put l'authentification fonctionne , j'arrive à tester sur postman en entrant le token dans les paramètre prévu pour. Mes sur ma route post direct j'ai l'erreur du middleware d'authentification qui me revient : 'user id non valide' et 'requête non identifié' . Et lorsque je retire 'auth' de ma route pour l'authentification j'arrive à faire ma passer ma requête sans problème.
Voici mon code pour la route post :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| exports.createPost = function (req, res, next){
const imageUrl = req.file ? `${req.protocol}://${req.get('host')}/images/${req.file.filename}` : null;
const username = req.body.username;
const title = req.body.title;
const postUser = req.body.postUser;
const id_user = req.body.id_user
const insertSql = `INSERT INTO posts (id_user,username, title, images, postUser, date_post) VALUES ('${id_user}','${username}', '${title}', '${imageUrl}', '${postUser}', NOW())`;
connection.query(insertSql, function (error, results, fields){
if(results){
res.status(201).json({results })
}else{
res.status(401).json({error: error, message: 'la publication à échouée !' })
}
})
}; |
Voilà je vous remercie par avance pour votre aide .:)