UNPKG

@kazion/create-app

Version:

A cli tool to help you get started with graphql and rest api's with typescript

32 lines (25 loc) 734 B
import type { NextFunction, Request, Response } from "express"; import createHttpError from "http-errors"; import jwt from "jsonwebtoken"; declare module "express" { interface Request extends Express.Request { user?: { id: string; }; } } export const protect = (req: Request, res: Response, next: NextFunction) => { try { const accessToken = req.headers.authorization?.replace("Bearer ", ""); if (!accessToken) { next(createHttpError(401)); return; } const decoded = jwt.verify(accessToken, process.env.ACCESS_TOKEN_KEY!); req.user = decoded as jwt.JwtPayload & { id: string }; next(); } catch (err) { console.log(err); return next(createHttpError(403)); } };