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

11
api/routes/admin.js Normal file
View File

@ -0,0 +1,11 @@
const { Router } = require('express');
const adminController = require('../controllers/admin');
const isAuth = require('../middlewares/isAuth');
const isAdmin = require('../middlewares/isAdmin');
const AdminRouter = Router();
// Permet de créé une fonction
AdminRouter.post('/functions', isAuth, isAdmin, adminController.postFunction);
module.exports = AdminRouter;

52
api/routes/users.js Normal file
View File

@ -0,0 +1,52 @@
const { Router } = require('express');
const { body } = require('express-validator');
const usersController = require('../controllers/users');
const Users = require('../models/users');
const UsersRouter = Router();
// Permet de se connecter
UsersRouter.post('/login', usersController.login);
// Permet de s'inscrire
UsersRouter.post('/signup', [
body('email')
.isEmail()
.withMessage("Veuillez rentré une adresse mail valide.")
.custom((async (email) => {
try {
const user = await Users.findOne({ where: { email } });
if (user) {
return Promise.reject("L'adresse email existe déjà...");
}
} catch (error) {
return console.log(error);
}
}))
.normalizeEmail(),
body('password')
.isLength({ min: 4 })
.withMessage("Votre mot de passe est trop court!"),
body('name')
.trim()
.not()
.isEmpty()
.withMessage("Votre nom ne peut pas être vide.")
.isAlphanumeric()
.withMessage("Votre nom ne peut contenir que des lettres ou/et des nombres.")
.custom((async (name) => {
try {
const user = await Users.findOne({ where: { name } });
if (user) {
return Promise.reject("Le nom existe déjà...");
}
} catch (error) {
return console.log(error);
}
}))
], usersController.signup);
// Confirme l'inscription
UsersRouter.get('/confirm-email/:tempToken', usersController.confirmEmail);
module.exports = UsersRouter;