login route functions as before

This commit is contained in:
Mikayla Dobson
2022-07-05 19:12:14 -05:00
parent 638d9a56d4
commit 4b4c7a7bb0
5 changed files with 38 additions and 21 deletions

View File

@@ -6,7 +6,7 @@ const pool = new Pool({ connectionString: process.env.CONNECTION });
module.exports = {
// text = SQL query; params = array of values to inject
pool,
connect: async () => await pool.connect().then(console.log("Connection successful.")),
connect: async () => await pool.connect(),
query: (text, params) => pool.query(text, params),
end: async () => await pool.end()
}

View File

@@ -3,15 +3,9 @@ const expressLoader = require('./express');
const routes = require('../routes/API');
module.exports = async (app) => {
// const passport = await passportLoader(app);
const express = await expressLoader(app);
const passport = await passportLoader(express);
await routes(app, passport);
app.use((err, req, res, next) => {
const { message, status } = err;
return res.status(status).send({ message });
});
console.log('loaders called');
}

View File

@@ -1,6 +1,3 @@
const express = require('express');
const apiRouter = express.Router();
const userRouter = require('./user');
const productsRouter = require('./products');
const registerRouter = require('./register');

View File

@@ -1,17 +1,30 @@
const loginRouter = require('express').Router();
const { LoginService } = require('../services/Auth');
// module.exports = loginRouter;
module.exports = (app, passport) => {
app.use('/api/login', loginRouter);
// loginRouter.use(passport.authenticate('local'));
loginRouter.post('/', passport.authenticate('local'), async (req, res, next) => {
try {
loginRouter.route('/').post(async (req, res, next) => {
console.log('login post got called');
const { email, password } = req.body;
const response = await LoginService(email, password);
if (response) console.log(response);
/**
* @function LoginService
* @returns: object, with keys:
* session: session object
* userProfile: postgres response from query
*
* session object:
* authenticated: boolean,
* user: { email, password }
*/
try {
const data = await LoginService(email, password);
res.status(200).send(data);
} catch(e) {
next(e);
}
});
})
}

View File

@@ -3,6 +3,7 @@ const bcrypt = require('bcrypt');
async function LoginService(email, password) {
const client = await connect();
let session;
try {
let hash = await client.query("SELECT password FROM users WHERE email = ($1)", [email]);
@@ -12,15 +13,27 @@ async function LoginService(email, password) {
if (!match) res.status(403).json({ msg: "Login unsuccessful. Please try again" });
if (match) {
req.session.authenticated = true;
req.session.user = { email: email, password: password }
session = {
authenticated: true,
user: {
email: email,
password: password
}
}
// req.session.authenticated = true;
// req.session.user = { email: email, password: password }
let fullUserProfile = await client.query("SELECT * FROM users WHERE email = ($1)", [email]);
return {
session: req.session,
session: session,
userProfile: fullUserProfile.rows[0]
}
} else {
return {
session: 'not found',
userProfile: 'not found'
}
}
} catch(e) {
await client.query("ROLLBACK");