User Login Middleware

Last modified: May 04, 2022
  • checkDuplicateUsernameOrEmail checks for duplicate email or username in the database
  • checkRolesExisted checks for if role allow
const db = require("../db/models/index"); const ROLES = db.ROLES; const User = db.user; checkDuplicateUsernameOrEmail = (req, res, next) => { // Username User.findOne({ where: { username: req.body.username } }).then(user => { if (user) { res.status(400).send({ message: "Failed! Username is already in use!" }); return; } // Email User.findOne({ where: { email: req.body.email } }).then(user => { if (user) { res.status(400).send({ message: "Failed! Email is already in use!" }); return; } next(); }); }); }; checkRolesExisted = (req, res, next) => { if (req.body.roles) { for (let i = 0; i < req.body.roles.length; i++) { if (!ROLES.includes(req.body.roles[i])) { res.status(400).send({ message: "Failed! Role does not exist = " + req.body.roles[i] }); return; } } } next(); }; const verifySignUp = { checkDuplicateUsernameOrEmail: checkDuplicateUsernameOrEmail, checkRolesExisted: checkRolesExisted }; module.exports = verifySignUp;