import express from 'express'; import morgan from 'morgan'; import computerRouter from './Routes/computer.js'; import userRouter from './Routes/user.js'; import jwt from 'jsonwebtoken'; const app = express(); app.use(express.json()); app.use(morgan('dev')); app.use(express.static('public')); const authMiddleware = async (req, res, next) => { const token = req.headers.authorization; if (!token) { return res.status(401).json({ message: 'No auth token provided' }); } try { const decoded = jwt.verify(token, process.env.SECRET); if (!decoded) { return res.status(401).json({ message: 'Invalid auth token' }); } const rows = await database.execute('SELECT * FROM users WHERE username = ?', [decoded.username]); if (rows.length === 0) res.status(401).json({ error: 'Unauthorized' }); const isPasswordValid = await Bun.password.verify(decoded.password, rows[0].password); if (!isPasswordValid) res.status(401).json({ error: 'Unauthorized' }); next(); } catch (error) { return res.status(401).json({ message: 'Invalid auth token' }); } }; computerRouter.use(authMiddleware); app.use('/computer', computerRouter); app.use('/user', userRouter); // Start the server app.listen(3000, () => { console.log('Server is running on port 3000'); });