import jwt from 'jsonwebtoken'; import { getUserByUsername } from './db.js'; const JWT_SECRET = process.env.JWT_SECRET || 'tiktok-rezepte-secret-key-change-in-production'; export function authMiddleware(req, res, next) { const authHeader = req.headers.authorization; if (!authHeader || !authHeader.startsWith('Bearer ')) { return res.status(401).json({ error: 'Nicht authentifiziert' }); } try { const token = authHeader.split(' ')[1]; const decoded = jwt.verify(token, JWT_SECRET); const user = getUserByUsername(decoded.username); if (!user) return res.status(401).json({ error: 'Benutzer nicht gefunden' }); req.user = user; next(); } catch { res.status(401).json({ error: 'Ungültiges Token' }); } } export function adminMiddleware(req, res, next) { if (!req.user || !req.user.is_admin) { return res.status(403).json({ error: 'Keine Berechtigung' }); } next(); }