check for existing user
This commit is contained in:
65
index.js
65
index.js
@@ -24,6 +24,8 @@ app.post('/auth/login', async function(req, res) {
|
||||
let username = req.body.username.trim();
|
||||
let password = req.body.password.trim();
|
||||
|
||||
await loginUser(username, password);
|
||||
|
||||
async function loginUser (username, password) {
|
||||
if (username && password) {
|
||||
try {
|
||||
@@ -44,35 +46,30 @@ app.post('/auth/login', async function(req, res) {
|
||||
res.send('Please enter Username and Password!');
|
||||
}
|
||||
res.end();
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
app.post('/auth/signup', (req, res) => {
|
||||
app.post('/auth/signup', async (req, res) => {
|
||||
|
||||
let username = req.body.username.trim();
|
||||
let password = req.body.password.trim();
|
||||
|
||||
insertAccount(username, password);
|
||||
|
||||
async function insertAccount(username, password){
|
||||
const query = `
|
||||
INSERT INTO accounts (username, password)
|
||||
VALUES ($1, $2)
|
||||
RETURNING *;
|
||||
`;
|
||||
const values = [username, password];
|
||||
|
||||
try {
|
||||
const signupData = await client.query(query, values);
|
||||
console.log('Account created:', signupData.rows[0]);
|
||||
res.status(200).send("Account successfully created <a href=/login>Login screen</a>");
|
||||
} catch (err) {
|
||||
console.error('Error inserting data:', err.stack);
|
||||
res.status(500).send('Error inserting data');
|
||||
try {
|
||||
const exists = await isUserExists(username);
|
||||
if (exists) {
|
||||
console.log('User already exists');
|
||||
res.status(500).send('User already exists!');
|
||||
return;
|
||||
}
|
||||
await insertAccount(username, password);
|
||||
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');
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
app.get('/login', (req, res) => {
|
||||
res.sendFile(path.join(__dirname, '/public/routes/login.html'));
|
||||
})
|
||||
@@ -87,4 +84,32 @@ app.get('/', (req, res) => {
|
||||
|
||||
app.listen(port, () => {
|
||||
console.log(`Example app listening on port ${port}`)
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
async function isUserExists(username) {
|
||||
try {
|
||||
const query = 'SELECT COUNT(*) FROM accounts WHERE username = $1';
|
||||
const result = await client.query(query, [username]);
|
||||
return result.rows[0].count > 0;
|
||||
} catch (err) {
|
||||
console.error('Error checking username:', err);
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
async function insertAccount(username, password){
|
||||
const query = `
|
||||
INSERT INTO accounts (username, password)
|
||||
VALUES ($1, $2)
|
||||
RETURNING *;
|
||||
`;
|
||||
const values = [username, password];
|
||||
|
||||
try {
|
||||
const signupData = await client.query(query, values);
|
||||
console.log('Account created:', signupData.rows[0]);
|
||||
} catch (err) {
|
||||
console.error('Error inserting data:', err.stack);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,4 @@ document.getElementById('signupForm').addEventListener('submit',async function (
|
||||
alert("Passwords don't match!");
|
||||
event.preventDefault();
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user