20 lines
		
	
	
		
			539 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			20 lines
		
	
	
		
			539 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								const jwt = require('jsonwebtoken');
							 | 
						||
| 
								 | 
							
								const config = require('../config/jwt');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const auth = (req, res, next) => {
							 | 
						||
| 
								 | 
							
								  try {
							 | 
						||
| 
								 | 
							
								    const token = req.header('Authorization')?.replace('Bearer ', '');
							 | 
						||
| 
								 | 
							
								    if (!token) {
							 | 
						||
| 
								 | 
							
								      return res.status(401).json({ error: 'Authentication required' });
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    const decoded = jwt.verify(token, config.secret);
							 | 
						||
| 
								 | 
							
								    req.userId = decoded.userId;
							 | 
						||
| 
								 | 
							
								    next();
							 | 
						||
| 
								 | 
							
								  } catch (error) {
							 | 
						||
| 
								 | 
							
								    console.error('Auth error:', error);
							 | 
						||
| 
								 | 
							
								    res.status(401).json({ error: 'Invalid token' });
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = auth;
							 |