login route functions as before
This commit is contained in:
@@ -6,7 +6,7 @@ const pool = new Pool({ connectionString: process.env.CONNECTION });
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
// text = SQL query; params = array of values to inject
|
// text = SQL query; params = array of values to inject
|
||||||
pool,
|
pool,
|
||||||
connect: async () => await pool.connect().then(console.log("Connection successful.")),
|
connect: async () => await pool.connect(),
|
||||||
query: (text, params) => pool.query(text, params),
|
query: (text, params) => pool.query(text, params),
|
||||||
end: async () => await pool.end()
|
end: async () => await pool.end()
|
||||||
}
|
}
|
||||||
@@ -3,15 +3,9 @@ const expressLoader = require('./express');
|
|||||||
const routes = require('../routes/API');
|
const routes = require('../routes/API');
|
||||||
|
|
||||||
module.exports = async (app) => {
|
module.exports = async (app) => {
|
||||||
// const passport = await passportLoader(app);
|
|
||||||
const express = await expressLoader(app);
|
const express = await expressLoader(app);
|
||||||
const passport = await passportLoader(express);
|
const passport = await passportLoader(express);
|
||||||
await routes(app, passport);
|
await routes(app, passport);
|
||||||
|
|
||||||
app.use((err, req, res, next) => {
|
console.log('loaders called');
|
||||||
|
|
||||||
const { message, status } = err;
|
|
||||||
|
|
||||||
return res.status(status).send({ message });
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,3 @@
|
|||||||
const express = require('express');
|
|
||||||
const apiRouter = express.Router();
|
|
||||||
|
|
||||||
const userRouter = require('./user');
|
const userRouter = require('./user');
|
||||||
const productsRouter = require('./products');
|
const productsRouter = require('./products');
|
||||||
const registerRouter = require('./register');
|
const registerRouter = require('./register');
|
||||||
|
|||||||
@@ -1,17 +1,30 @@
|
|||||||
const loginRouter = require('express').Router();
|
const loginRouter = require('express').Router();
|
||||||
const { LoginService } = require('../services/Auth');
|
const { LoginService } = require('../services/Auth');
|
||||||
|
|
||||||
// module.exports = loginRouter;
|
|
||||||
module.exports = (app, passport) => {
|
module.exports = (app, passport) => {
|
||||||
app.use('/api/login', loginRouter);
|
app.use('/api/login', loginRouter);
|
||||||
|
// loginRouter.use(passport.authenticate('local'));
|
||||||
|
|
||||||
loginRouter.post('/', passport.authenticate('local'), async (req, res, next) => {
|
loginRouter.route('/').post(async (req, res, next) => {
|
||||||
try {
|
console.log('login post got called');
|
||||||
const { email, password } = req.body;
|
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) {
|
} catch(e) {
|
||||||
next(e);
|
next(e);
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
@@ -3,6 +3,7 @@ const bcrypt = require('bcrypt');
|
|||||||
|
|
||||||
async function LoginService(email, password) {
|
async function LoginService(email, password) {
|
||||||
const client = await connect();
|
const client = await connect();
|
||||||
|
let session;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let hash = await client.query("SELECT password FROM users WHERE email = ($1)", [email]);
|
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) res.status(403).json({ msg: "Login unsuccessful. Please try again" });
|
||||||
if (match) {
|
if (match) {
|
||||||
req.session.authenticated = true;
|
session = {
|
||||||
req.session.user = { email: email, password: password }
|
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]);
|
let fullUserProfile = await client.query("SELECT * FROM users WHERE email = ($1)", [email]);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
session: req.session,
|
session: session,
|
||||||
userProfile: fullUserProfile.rows[0]
|
userProfile: fullUserProfile.rows[0]
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
return {
|
||||||
|
session: 'not found',
|
||||||
|
userProfile: 'not found'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
await client.query("ROLLBACK");
|
await client.query("ROLLBACK");
|
||||||
|
|||||||
Reference in New Issue
Block a user