/
Moss
/
Diplom
Обзор
Документация
Войти
/
Moss
/
Diplom
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
server/src/middleware/auth.ts
41 строка
952 B
Kursovaya
lol
08 июн 2025, 18:06
08 июн 2025, 18:06
c28cde0
Код
Авторство
О чём код?
import { Request, Response, NextFunction } from 'express'; import jwt from 'jsonwebtoken'; import { PrismaClient } from '@prisma/client'; const prisma = new PrismaClient(); interface AuthRequest extends Request { user?: any; } export const auth = async (req: AuthRequest, res: Response, next: NextFunction) => { try { const token = req.header('Authorization')?.replace('Bearer ', ''); if (!token) { throw new Error(); } const decoded = jwt.verify(token, process.env.JWT_SECRET || 'your-secret-key') as any; const user = await prisma.user.findUnique({ where: { id: decoded.id }, select: { id: true, email: true, firstName: true, lastName: true, phone: true, role: true, }, }); if (!user) { throw new Error(); } req.user = user; next(); } catch (error) { res.status(401).json({ error: 'Please authenticate.' }); } };