FIrst commit
This commit is contained in:
40
index.js
Normal file
40
index.js
Normal file
@@ -0,0 +1,40 @@
|
||||
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');
|
||||
});
|
||||
Reference in New Issue
Block a user