diff --git a/package-lock.json b/package-lock.json index 11876ca..6b166c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,6 +15,7 @@ "dotenv": "^16.0.0", "express": "^4.17.3", "passport": "^0.6.0", + "passport-local": "^1.0.0", "pg": "^8.7.3" } }, @@ -956,6 +957,17 @@ "url": "https://github.com/sponsors/jaredhanson" } }, + "node_modules/passport-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz", + "integrity": "sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4=", + "dependencies": { + "passport-strategy": "1.x.x" + }, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/passport-strategy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", @@ -2176,6 +2188,14 @@ "utils-merge": "^1.0.1" } }, + "passport-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz", + "integrity": "sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4=", + "requires": { + "passport-strategy": "1.x.x" + } + }, "passport-strategy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", diff --git a/package.json b/package.json index 973b706..bc2ba57 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "dotenv": "^16.0.0", "express": "^4.17.3", "passport": "^0.6.0", + "passport-local": "^1.0.0", "pg": "^8.7.3" } } diff --git a/routes/API.js b/routes/API.js index 4c57d3f..7b6f76e 100644 --- a/routes/API.js +++ b/routes/API.js @@ -4,9 +4,11 @@ const apiRouter = express.Router(); const userRouter = require('./user'); const productsRouter = require('./products'); const registerRouter = require('./register'); +const loginRouter = require('./login'); apiRouter.use('/users', userRouter); apiRouter.use('/products', productsRouter); apiRouter.use('/register', registerRouter); +apiRouter.use('/login', loginRouter); module.exports = apiRouter; \ No newline at end of file diff --git a/routes/login.js b/routes/login.js index e69de29..0329f8b 100644 --- a/routes/login.js +++ b/routes/login.js @@ -0,0 +1,26 @@ +const bcrypt = require('bcrypt'); + +const loginRouter = require('express').Router(); +const client = require('../db/Client'); + +loginRouter.route('/').post(async (req, res) => { + const newClient = client(); + const { email, password } = req.body; + + try { + newClient.connect().then(console.log("Connection successful.")); + let hash = await newClient.query("SELECT password FROM users WHERE email = ($1)", [email]); + hash = hash.rows[0].password; + + let match = await bcrypt.compare(password, hash); + + if (match) res.send("Login successful!"); + } catch(e) { + console.log(e); + } finally { + await newClient.end() + .then(console.log("Client disconnected.")); + } +}); + +module.exports = loginRouter; \ No newline at end of file