backend: Login/Inscription
This commit is contained in:
23
api/middlewares/isAdmin.js
Normal file
23
api/middlewares/isAdmin.js
Normal file
@ -0,0 +1,23 @@
|
||||
const errorHandling = require('../assets/utils/errorHandling');
|
||||
const { serverError } = require('../assets/config/errors');
|
||||
const Users = require('../models/users');
|
||||
|
||||
module.exports = (req, _res, next) => {
|
||||
if (!req.userId) {
|
||||
return errorHandling(next, { message: "Vous n'êtes pas connecté.", statusCode: 401 });
|
||||
}
|
||||
Users.findOne({ where: { id: req.userId } })
|
||||
.then((user) => {
|
||||
if (!user) {
|
||||
return errorHandling(next, { message: "Le mot de passe ou l'adresse email n'est pas valide.", statusCode: 400 });
|
||||
}
|
||||
if (!user.isAdmin) {
|
||||
return errorHandling(next, { message: "Vous n'êtes pas administrateur.", statusCode: 400 });
|
||||
}
|
||||
next();
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log(error);
|
||||
errorHandling(next, serverError);
|
||||
});
|
||||
}
|
25
api/middlewares/isAuth.js
Normal file
25
api/middlewares/isAuth.js
Normal file
@ -0,0 +1,25 @@
|
||||
const jwt = require('jsonwebtoken');
|
||||
const errorHandling = require('../assets/utils/errorHandling');
|
||||
const { serverError } = require('../assets/config/errors');
|
||||
const { JWT_SECRET } = require('../assets/config/config');
|
||||
|
||||
module.exports = (req, _res, next) => {
|
||||
const token = req.get('Authorization');
|
||||
if (!token) {
|
||||
return errorHandling(next, { message: "Vous n'êtes pas connecté.", statusCode: 401 });
|
||||
}
|
||||
|
||||
let decodedToken;
|
||||
try {
|
||||
decodedToken = jwt.verify(token, JWT_SECRET);
|
||||
} catch (error) {
|
||||
return errorHandling(next, serverError);
|
||||
}
|
||||
|
||||
if (!decodedToken) {
|
||||
return errorHandling(next, { message: "Vous n'êtes pas connecté.", statusCode: 401 });
|
||||
}
|
||||
|
||||
req.userId = decodedToken.userId;
|
||||
next();
|
||||
}
|
Reference in New Issue
Block a user