login is working

This commit is contained in:
slawk0
2024-08-21 15:32:36 +02:00
parent aeda9741be
commit 0c8e844aaf
2 changed files with 40 additions and 43 deletions

View File

@@ -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
};

View File

@@ -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();
}