diff --git a/package.json b/package.json index d0d3f6c..0178e5f 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "morgan": "^1.10.0", "pg": "^8.2.1", "pg-hstore": "^2.3.3", - "sequelize": "^6.3.0", + "sequelize": "^6.3.5", "sequelize-cli": "^6.2.0" }, "devDependencies": { diff --git a/src/controllers/auth.js b/src/controllers/auth.js index 85ab272..2a8d718 100644 --- a/src/controllers/auth.js +++ b/src/controllers/auth.js @@ -48,3 +48,35 @@ exports.signup = async (req, res, next) => { .catch((error) => next(error)); }); }; +exports.signIn = (req, res, next) => { + const { email, password, username } = req.body; + model.User.findOne({ + where: { + email, + + }, + + }).then((user) => { + if (!user) { + res.status(403).json({ + error: 'user with that email doesn\'t exist !', + }); + } + if (user) { + bcrypt.compare(password, user.password, (err, result) => { + if (!result) { + res.status(401).json({ + message: 'password doesn\'t match', + }); + } else { + const token = jwt.sign({ username }, process.env.secret); + + return res.status(201).json({ token }); + } + return res.status(400).json(err); + }); + } + }).catch((error) => { + next(error); + }); +}; diff --git a/src/routes/auth.js b/src/routes/auth.js index 56d037b..a04fdd4 100644 --- a/src/routes/auth.js +++ b/src/routes/auth.js @@ -2,8 +2,8 @@ import express from 'express'; import { signupValidator } from '../validator/index'; const router = express.Router(); -const { signup } = require('../controllers/auth'); +const { signup, signIn } = require('../controllers/auth'); router.post('/auth/signup', signupValidator, signup); - +router.post('/auth/signin', signIn); export default router; diff --git a/yarn.lock b/yarn.lock index 2e67e7d..b706d40 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3421,9 +3421,10 @@ sequelize-pool@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/sequelize-pool/-/sequelize-pool-6.1.0.tgz#caaa0c1e324d3c2c3a399fed2c7998970925d668" -sequelize@^6.3.0: - version "6.3.3" - resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-6.3.3.tgz#930ab26f9e928d9bf2fe1fe477b428a092fef063" +sequelize@^6.3.5: + version "6.3.5" + resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-6.3.5.tgz#80e3db7ac8b76d98c45ca93334197eb6e2335158" + integrity sha512-MiwiPkYSA8NWttRKAXdU9h0TxP6HAc1fl7qZmMO/VQqQOND83G4nZLXd0kWILtAoT9cxtZgFqeb/MPYgEeXwsw== dependencies: debug "^4.1.1" dottie "^2.0.0"