minor cleanup

This commit is contained in:
BIG2EYEZ 2024-01-19 15:42:47 +08:00
parent 35040df1ed
commit c1824ff0eb
2 changed files with 8 additions and 14 deletions

View File

@ -1,4 +1,4 @@
const mysql = require("mysql2");
const path = require("path"); const path = require("path");
require('dotenv').config({ path: path.resolve(__dirname, '../.env') }) require('dotenv').config({ path: path.resolve(__dirname, '../.env') })
const fs = require('fs'); const fs = require('fs');

View File

@ -1,7 +1,7 @@
const express = require("express"); const express = require("express");
const session = require("express-session"); const session = require("express-session");
const rateLimit = require('express-rate-limit'); const rateLimit = require('express-rate-limit');
const mysql2 = require('mysql2');
const bodyParser = require("body-parser"); const bodyParser = require("body-parser");
const bcrypt = require("bcrypt"); const bcrypt = require("bcrypt");
const crypto = require("crypto"); const crypto = require("crypto");
@ -13,7 +13,7 @@ const { format } = require('date-fns');
const { Sequelize } = require('sequelize'); const { Sequelize } = require('sequelize');
const { transporter } = require("./modules/nodeMailer"); const { transporter } = require("./modules/nodeMailer");
const { connection } = require("./modules/mysql");
const { sequelize, User } = require("./modules/mysql"); const { sequelize, User } = require("./modules/mysql");
const userLogs= require('./models/userLogs')(sequelize); // Adjust the path based on your project structure const userLogs= require('./models/userLogs')(sequelize); // Adjust the path based on your project structure
const app = express(); const app = express();
@ -80,15 +80,13 @@ app.get("/login", (req, res) => {
res.render("login", { error: null }); res.render("login", { error: null });
}); });
const limiter = rateLimit({ const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 minutes windowMs: 15 * 60 * 1000, // 15 minutes
max: 5, // limit each IP to 3 requests per windowMs max: 5, // limit each IP to 3 requests per windowMs
message: 'Too many login attempts from this IP, please try again later.', message: 'Too many login attempts from this IP, please try again later.',
}); });
app.use('/login', limiter); app.use('/login', limiter);
app.post('/login', [ app.post('/login', [
@ -168,7 +166,7 @@ app.post("/verify-otp", [
const errors = validationResult(req); const errors = validationResult(req);
if (!errors.isEmpty()) { if (!errors.isEmpty()) {
return res.render('otp', { error: 'Invalid OTP. Please try again.', username: req.body.username, csrfToken: req.session.csrfToken }); return res.render('otp', { error: 'Invalid OTP. Please try again.'});
} }
const enteredOTP = req.body.otp; const enteredOTP = req.body.otp;
@ -223,12 +221,7 @@ app.post("/verify-otp", [
app.get("/logout", async (req, res) => { app.get("/logout", async (req, res) => {
try { try {
const username = req.session.username || "Unknown User"; const username = req.session.username ;
// Log the logout activity using Sequelize
await userLogs.create({ username, activity: "User logged out. Session destroyed." });
// Log the user out by clearing the session // Log the user out by clearing the session
req.session.destroy(async (err) => { req.session.destroy(async (err) => {
if (err) { if (err) {
@ -238,7 +231,8 @@ app.post("/verify-otp", [
await userLogs.create({ username, activity: "User logged out unsuccessfully. Session not destroyed." }); await userLogs.create({ username, activity: "User logged out unsuccessfully. Session not destroyed." });
} else { } else {
console.log("Session destroyed."); console.log("Session destroyed.");
// Log the logout activity using Sequelize
await userLogs.create({ username, activity: "User logged out. Session destroyed." });
// Clear the session token cookie // Clear the session token cookie
res.clearCookie('sessionToken'); res.clearCookie('sessionToken');
} }