1234567891011121314151617181920212223242526272829 |
- // middlewares/auth.js
- const jwt = require('jsonwebtoken');
- function authenticate(req, res, next) {
- const token = req.header('Authorization')?.replace('Bearer ', '');
-
- if (!token) {
- return res.status(401).json({ error: 'Access denied. No token provided.' });
- }
-
- try {
- const decoded = jwt.verify(token, process.env.JWT_SECRET);
- req.user = decoded;
- next();
- } catch (err) {
- res.status(400).json({ error: 'Invalid token.' });
- }
- }
- function authorize(roles = []) {
- return (req, res, next) => {
- if (!roles.includes(req.user.role)) {
- return res.status(403).json({ error: 'Access denied.' });
- }
- next();
- };
- }
- module.exports = { authenticate, authorize };
|