code refactor, fixed token lifetime
This commit is contained in:
@@ -7,20 +7,9 @@ const app = express();
|
||||
const server = createServer(app);
|
||||
const io = new Server(server);
|
||||
|
||||
function chat(req, res) {
|
||||
io.on('connection', (socket) => {
|
||||
console.log('a user connected');
|
||||
|
||||
socket.on('disconnect', () => {
|
||||
console.log('user disconnected');
|
||||
});
|
||||
|
||||
socket.on('connection', (socket) => {
|
||||
console.log('message: ', + msg);
|
||||
})
|
||||
});
|
||||
function socket(username) {
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
chat
|
||||
socket
|
||||
};
|
||||
@@ -24,6 +24,7 @@
|
||||
<input id="input" autocomplete="off" />
|
||||
<button>Send</button>
|
||||
</form>
|
||||
|
||||
<script src="/socket.io/socket.io.js"></script>
|
||||
<script src="/static/js/chat.js"></script>
|
||||
|
||||
|
||||
59
index.js
59
index.js
@@ -6,6 +6,7 @@ const cookieParser = require('cookie-parser');
|
||||
|
||||
const path = require('path');
|
||||
const { insertUser, isUserExists, client } = require('./backend/db.js');
|
||||
//const { socket } = require('./backend/socket.js');
|
||||
|
||||
const bcrypt = require('bcrypt');
|
||||
const saltRounds = 10;
|
||||
@@ -81,36 +82,35 @@ app.get('/auth/user', (req, res) => {
|
||||
// serving the chat page if logged in
|
||||
app.get('/', (req, res) => {
|
||||
const token = req.cookies.token;
|
||||
if (token) {
|
||||
jwt.verify(token, jwtSecret, (err, user) => {
|
||||
if (err) {
|
||||
return res.status(403).send('Unauthorized');
|
||||
} else {
|
||||
const username = user.username;
|
||||
res.sendFile(path.join(__dirname, '/frontend/routes/chat.html'));
|
||||
// socket io connection
|
||||
io.on('connection', (socket) => {
|
||||
console.log(username + ' connected');
|
||||
|
||||
// disconnect event
|
||||
socket.on('disconnect', () => {
|
||||
console.log(username + 'have disconnected');
|
||||
});
|
||||
|
||||
// chat message event
|
||||
socket.on('chat message', (msg) => {
|
||||
const message = username + ': ' + msg;
|
||||
console.log(message);
|
||||
io.emit('chat message', message);
|
||||
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
if(!token) {
|
||||
res.redirect('/login');
|
||||
return;
|
||||
}
|
||||
|
||||
// verify token
|
||||
jwt.verify(token, jwtSecret, (err, user) => {
|
||||
if (err) {
|
||||
return res.status(403).send('Unauthorized');
|
||||
}
|
||||
const username = user.username;
|
||||
res.sendFile(path.join(__dirname, '/frontend/routes/chat.html'));
|
||||
|
||||
// socket io connection
|
||||
io.on('connection', (socket) => {
|
||||
console.log(username + ' connected');
|
||||
// disconnect event
|
||||
socket.on('disconnect', () => {
|
||||
console.log(username + ' have disconnected');
|
||||
});
|
||||
// chat message event
|
||||
socket.on('chat message', (msg) => {
|
||||
const message = username + ': ' + msg;
|
||||
console.log(message);
|
||||
io.emit('chat message', message);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// run server
|
||||
@@ -160,7 +160,10 @@ async function loginUser(req, res) {
|
||||
const token = jwt.sign({ username }, jwtSecret, {
|
||||
expiresIn: '30d' // token expires in 30 days
|
||||
});
|
||||
res.cookie('token', token, {httpOnly: true});
|
||||
res.cookie('token', token, {
|
||||
httpOnly: true,
|
||||
maxAge: 30 * 24 * 60 * 60 * 1000 //30 days
|
||||
});
|
||||
req.session.loggedin = true;
|
||||
req.session.username = username;
|
||||
res.send(`
|
||||
|
||||
Reference in New Issue
Block a user