From 23a6d9b10f45b97d83ba3f9b11b9d609caa6c1d3 Mon Sep 17 00:00:00 2001 From: Fredrik Wahlberg Date: Thu, 30 Jan 2025 22:02:35 +0100 Subject: [PATCH] Refactor logging implementation and enhance authentication logging --- logger.js | 6 +++--- middleware/auth.js | 2 ++ public/js/main.js | 51 +++++++++++++++++++++++++--------------------- routes/auth.js | 2 ++ server.js | 4 +++- 5 files changed, 38 insertions(+), 27 deletions(-) diff --git a/logger.js b/logger.js index bf93182..f677440 100644 --- a/logger.js +++ b/logger.js @@ -4,13 +4,13 @@ const logger = createLogger({ level: 'info', format: format.combine( format.timestamp(), - format.json() + format.printf(info => `${info.timestamp} ${info.level}: ${info.message}`) ), transports: [ new transports.Console(), - new transports.File({ filename: 'app.log' }) + new transports.File({ filename: '/data/app.log' }) ] -}); +}); module.exports = logger; diff --git a/middleware/auth.js b/middleware/auth.js index db01305..de23789 100644 --- a/middleware/auth.js +++ b/middleware/auth.js @@ -1,10 +1,12 @@ const basicAuth = require('basic-auth'); +const logger = require('../logger'); const auth = (req, res, next) => { if (req.session && req.session.user) { return next(); } else { res.status(401).send('Authentication required.'); + logger.error('Unauthorized access attempted from IP:', req.ip); } }; diff --git a/public/js/main.js b/public/js/main.js index 5cfe0a5..784808c 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -2,31 +2,36 @@ import { checkSession, login, logout } from './auth.js'; import { saveTask } from './tasks.js'; import { saveTags, loadTags } from './tags.js'; -navigator.serviceWorker.register('/service-worker.js') - .then(registration => { - console.log('ServiceWorker registration successful with scope: ', registration.scope); +if ('serviceWorker' in navigator) { + window.addEventListener('load', () => { + navigator.serviceWorker.register('/service-worker.js') + .then(registration => { + console.log('ServiceWorker registration successful with scope: ', registration.scope); - registration.onupdatefound = () => { - const installingWorker = registration.installing; - installingWorker.onstatechange = () => { - if (installingWorker.state === 'installed') { - if (navigator.serviceWorker.controller) { - // New update available - console.log('New content is available; please refresh.'); - if (confirm('New version available. Do you want to update?')) { - window.location.reload(); + registration.onupdatefound = () => { + const installingWorker = registration.installing; + installingWorker.onstatechange = () => { + if (installingWorker.state === 'installed') { + if (navigator.serviceWorker.controller) { + // New update available + console.log('New content is available; please refresh.'); + if (confirm('New version available. Do you want to update?')) { + window.location.reload(); + } + } else { + // Content is cached for offline use + console.log('Content is cached for offline use.'); + } } - } else { - // Content is cached for offline use - console.log('Content is cached for offline use.'); - } - } - }; - }; - }) - .catch(error => { - console.log('ServiceWorker registration failed: ', error); - }); + }; + }; + }) + .catch(error => { + console.log('ServiceWorker registration failed: ', error); + }); + }); +} + document.addEventListener('DOMContentLoaded', function() { const loginForm = document.getElementById('loginForm'); diff --git a/routes/auth.js b/routes/auth.js index a3145e0..806aaed 100644 --- a/routes/auth.js +++ b/routes/auth.js @@ -1,5 +1,6 @@ const express = require('express'); const basicAuth = require('basic-auth'); +const logger = require('../logger'); const router = express.Router(); router.post('/login', (req, res) => { @@ -10,6 +11,7 @@ router.post('/login', (req, res) => { if (user && user.name === username && user.pass === password) { req.session.user = user.name; res.status(200).send('Login successful'); + logger.info(`User ${user.name} logged in`); } else { res.status(401).send('Authentication required'); } diff --git a/server.js b/server.js index c2706bf..f759216 100644 --- a/server.js +++ b/server.js @@ -8,6 +8,7 @@ const debug = require('debug')('app'); const tasksRouter = require('./routes/tasks'); const authRouter = require('./routes/auth'); const authMiddleware = require('./middleware/auth'); +const logger = require('./logger'); const app = express(); const port = 3044; @@ -37,5 +38,6 @@ app.use('/', authRouter); app.use('/', authMiddleware, tasksRouter); app.listen(port, () => { - debug(`Server running at http://localhost:${port}`); + logger.info(`Server running at http://localhost:${port}`); + //debug(`Server running at http://localhost:${port}`); });