login is working
This commit is contained in:
@@ -45,30 +45,9 @@ async function insertUser(username, password){
|
||||
}
|
||||
}
|
||||
|
||||
// function for login user
|
||||
async function loginUser (username, password) {
|
||||
if (username && password) {
|
||||
try {
|
||||
const result = await client.query('SELECT * FROM accounts WHERE username = $1 AND password = $2', [username, password]);
|
||||
if (result.rows.length > 0) {
|
||||
res.redirect('/');
|
||||
} else {
|
||||
res.send('Incorrect Username or Password!');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error executing query', error);
|
||||
res.status(500).send('Error executing query');
|
||||
}
|
||||
} else {
|
||||
res.send('Please enter Username and Password!');
|
||||
}
|
||||
res.end();
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
client,
|
||||
insertUser,
|
||||
isUserExists,
|
||||
loginUser
|
||||
};
|
||||
|
||||
|
||||
62
index.js
62
index.js
@@ -4,7 +4,7 @@ const path = require('path');
|
||||
const { client } = require('./backend/db');
|
||||
const port = 3000
|
||||
const app = express()
|
||||
const { insertUser, isUserExists, loginUser } = require('./backend/db');
|
||||
const { insertUser, isUserExists } = require('./backend/db');
|
||||
const bcrypt = require('bcrypt');
|
||||
const {hash} = require("bcrypt");
|
||||
const saltRounds = 10;
|
||||
@@ -29,8 +29,7 @@ app.post('/auth/login', async function(req, res) {
|
||||
let username = req.body.username.trim();
|
||||
let password = req.body.password.trim();
|
||||
|
||||
await loginUser(username, password);
|
||||
|
||||
await loginUser(req, res);
|
||||
});
|
||||
|
||||
app.post('/auth/signup', async (req, res) => {
|
||||
@@ -39,32 +38,23 @@ app.post('/auth/signup', async (req, res) => {
|
||||
let password = req.body.password.trim();
|
||||
|
||||
try {
|
||||
// check if user exists
|
||||
// Check if user exists
|
||||
const exists = await isUserExists(username);
|
||||
if (exists) {
|
||||
console.log('User already exists');
|
||||
res.status(500).send('User already exists!');
|
||||
return;
|
||||
return res.status(500).send('User already exists!');
|
||||
}
|
||||
|
||||
// hash password
|
||||
bcrypt.genSalt(saltRounds, function(err, salt) {
|
||||
if(err) {
|
||||
console.log('Error generating salt:', err);
|
||||
res.status(500).send('Error generating salt');
|
||||
}
|
||||
bcrypt.hash(password, salt, function(err, hash) {
|
||||
if(err) {
|
||||
console.log('Error hashing password:', err);
|
||||
res.status(500).send('Error hashing password');
|
||||
}
|
||||
insertUser(username, hash);
|
||||
res.status(200).send("Account successfully created <a href=/login>Login screen</a>");
|
||||
});
|
||||
});
|
||||
// Hash password
|
||||
const salt = await bcrypt.genSalt(saltRounds);
|
||||
const hash = await bcrypt.hash(password, salt);
|
||||
|
||||
// Insert user
|
||||
await insertUser(username, hash);
|
||||
return res.status(200).send("Account successfully created <a href=/login>Login screen</a>");
|
||||
} catch (err) {
|
||||
console.error('Error inserting data:', err);
|
||||
res.status(500).send('Error inserting data');
|
||||
return res.status(500).send('Error inserting data');
|
||||
}
|
||||
});
|
||||
|
||||
@@ -86,3 +76,31 @@ app.listen(port, () => {
|
||||
console.log(`Example app listening on port ${port}`)
|
||||
})
|
||||
|
||||
// login function
|
||||
async function loginUser(req, res) {
|
||||
let username = req.body.username.trim();
|
||||
let password = req.body.password.trim();
|
||||
|
||||
if (username && password) {
|
||||
try {
|
||||
const result = await client.query('SELECT * FROM accounts WHERE username = $1', [username]);
|
||||
if (result.rows.length > 0) {
|
||||
const user = result.rows[0];
|
||||
const match = await bcrypt.compare(password, user.password);
|
||||
if (match) {
|
||||
res.send('Login successful!');
|
||||
} else {
|
||||
res.send('Incorrect Username or Password!');
|
||||
}
|
||||
} else {
|
||||
res.send('Incorrect Username or Password!');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error executing query', error);
|
||||
res.status(500).send('Error executing query');
|
||||
}
|
||||
} else {
|
||||
res.send('Please enter Username and Password!');
|
||||
}
|
||||
res.end();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user