@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
text/typescript
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));
}
};