backend: Login/Inscription

This commit is contained in:
Divlo
2020-03-25 16:23:43 +01:00
parent 84712eb251
commit 2239df70b3
17 changed files with 461 additions and 8 deletions

View 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
View 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();
}