/
lanre
/
notes
Обзор
Документация
Войти
/
lanre
/
notes
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
server/src/middlewares/authMiddleware.ts
36 строк
1 KB
Mellettan
add JSDocs
24 май 2024, 12:07
24 май 2024, 12:07
10f8e35
Код
Авторство
О чём код?
import { Response, NextFunction, Request} from "express"; import { User } from "../db/user"; import jwt from 'jsonwebtoken'; import { IUserRequest } from "types/IUserRequest"; /** * Middleware function for authentication. * * @param {IUserRequest} req - The request object containing user information. * @param {Response} res - The response object. * @param {NextFunction} next - The next middleware function. * @return {void} This function does not return anything. */ export const auth = (req : IUserRequest, res: Response, next: NextFunction) => { try{ if (req.method == 'OPTIONS') return next(); const token = req.headers.authorization?.split(' ')[1]; if (!token){ return res.status(402).json({ message: 'Unauthorized' }); } const decoded = jwt.verify(token, process.env.SECRET_KEY as string) as User; if (!decoded){ return res.status(401).json({ message: 'Unauthorized' }); } req.user = decoded; return next() }catch(err){ return res.status(403).json({ message: 'Unauthorized' }); } }