Files
inventory/index.js
2023-11-23 16:01:56 +01:00

40 lines
1.3 KiB
JavaScript

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');
});