Vite front end #3
1038
package-lock.json
generated
1038
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -10,10 +10,13 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"bcrypt": "^5.0.1",
|
||||
"body-parser": "^1.20.0",
|
||||
"cors": "^2.8.5",
|
||||
"dotenv": "^16.0.0",
|
||||
"express": "^4.17.3",
|
||||
"passport": "^0.6.0",
|
||||
"passport-local": "^1.0.0",
|
||||
"pg": "^8.7.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,12 @@ 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;
|
||||
26
routes/login.js
Normal file
26
routes/login.js
Normal file
@@ -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;
|
||||
25
routes/register.js
Normal file
25
routes/register.js
Normal file
@@ -0,0 +1,25 @@
|
||||
const bcrypt = require('bcrypt');
|
||||
|
||||
const registerRouter = require('express').Router();
|
||||
const client = require('../db/Client');
|
||||
|
||||
registerRouter.route('/').post(async (req, res) => {
|
||||
const newClient = client();
|
||||
const { name, email, password } = req.body;
|
||||
|
||||
const salt = await bcrypt.genSalt(10);
|
||||
const hash = await bcrypt.hash(password, salt);
|
||||
|
||||
try {
|
||||
newClient.connect().then(console.log("Connection successful."));
|
||||
await newClient.query("INSERT INTO users (name, email, password) values ($1, $2, $3)", [name, email, hash]);
|
||||
res.sendStatus(200);
|
||||
} catch(e) {
|
||||
console.log(e);
|
||||
} finally {
|
||||
await newClient.end()
|
||||
.then(console.log("Client disconnected."));
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = registerRouter;
|
||||
Reference in New Issue
Block a user