This commit is contained in:
slawk0
2024-08-21 23:39:05 +02:00
parent e97a8a2346
commit 4e40b4f74f
3 changed files with 33 additions and 29 deletions

View File

@@ -21,7 +21,7 @@
const socket = io();
form.addEventListener('submit', (e) => {
document.getElementById('form').addEventListener('submit', (e) => {
e.preventDefault();
if (input.value) {
socket.emit('chat message', input.value);

View File

@@ -5,7 +5,7 @@
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="../js/js/login.js" defer></script>
<script src="/static/js/login.js" defer></script>
<title>Login</title>
</head>
<body>

View File

@@ -1,11 +1,10 @@
const express = require('express');
const session = require('express-session');
const port = 3000
const app = express()
const port = 3000;
const app = express();
const path = require('path');
const { insertUser, isUserExists, client } = require('./backend/db.js');
const { chat } = require('./backend/socket.js');
const bcrypt = require('bcrypt');
const saltRounds = 10;
@@ -15,26 +14,25 @@ const { createServer } = require('node:http');
const server = createServer(app);
const io = new Server(server);
require('dotenv').config()
//TODO change password option will be cool
//TODO delete user option will be also cool
require('dotenv').config();
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(express.static(path.join(__dirname, 'public')));
app.use('/static', express.static('frontend'))
app.use('/socket.io', express.static('node_modules/socket.io/client-dist'));
app.use('/static', express.static('frontend'));
app.use('/socket', express.static('node_modules/socket.io/client-dist'));
app.use(session({
secret: process.env.SESSION_SECRET,
resave: true,
saveUninitialized: true
}));
// aut login api
app.post('/auth/login', async function(req, res) {
// auth login API
app.post('/auth/login', async (req, res) => {
await loginUser(req, res);
});
// auth signup api
// auth signup API
app.post('/auth/signup', async (req, res) => {
await signupUser(req, res);
});
@@ -42,34 +40,42 @@ app.post('/auth/signup', async (req, res) => {
// serving the login page
app.get('/login', (req, res) => {
res.sendFile(path.join(__dirname, '/frontend/routes/login.html'));
})
});
// serving the signup page
app.get('/signup', (req, res) => {
res.sendFile(path.join(__dirname, '/frontend/routes/signup.html'));
})
});
// serving the chat page if logged in
app.get('/', (req, res) => {
if(req.session.loggedin){
if (req.session.loggedin) {
res.sendFile(path.join(__dirname, '/frontend/routes/chat.html'));
} else {
res.redirect('/login')
res.redirect('/login');
}
})
});
io.on('connection', (socket) => {
console.log('a user connected');
socket.on('disconnect', () => {
console.log('user disconnected');
});
});
io.on('connection', (socket) => {
socket.on('chat message', (msg) => {
console.log('message: ' + msg);
});
});
// run server
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
})
server.listen(port, () => {
console.log(`Chat app listening on port ${port}`);
});
//signup function
// signup function
async function signupUser(req, res) {
let username = req.body.username.trim();
let password = req.body.password.trim();
@@ -88,12 +94,10 @@ async function signupUser(req, res) {
// 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);
return res.status(500).send('Error inserting data');
}
}
// login function
@@ -115,7 +119,7 @@ async function loginUser(req, res) {
<p>Login successful!</p>
<p>Redirecting to chat...</p>
<script>
setTimeout(() =>{
setTimeout(() => {
window.location.href = '/';
}, 1500);
</script>
@@ -134,4 +138,4 @@ async function loginUser(req, res) {
res.send('Please enter Username and Password!');
}
res.end();
}
}