diff --git a/src/app.ts b/src/app.ts index 9e15de1..e54f0ac 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,17 +1,18 @@ -import "reflect-metadata"; -import * as dotenvSafe from "dotenv-safe"; -import { createExpressServer } from "routing-controllers"; import consola from "consola"; -import loaders from "./loaders/index"; +import * as dotenvSafe from "dotenv-safe"; +import "reflect-metadata"; +import { createExpressServer } from "routing-controllers"; import authchecker from "./authchecker"; +import loaders from "./loaders/index"; import { ErrorHandler } from './middlewares/ErrorHandler'; +import { JWTAuth } from './middlewares/JWTAuth'; dotenvSafe.config(); const PORT = process.env.APP_PORT || 4010; const app = createExpressServer({ authorizationChecker: authchecker, - middlewares: [ErrorHandler], + middlewares: [ErrorHandler, JWTAuth], development: process.env.NODE_ENV === "production", cors: true, routePrefix: "/api", diff --git a/src/middlewares/jwtauth.ts b/src/middlewares/jwtauth.ts index 81c28c3..bdb423b 100644 --- a/src/middlewares/jwtauth.ts +++ b/src/middlewares/jwtauth.ts @@ -1,17 +1,20 @@ -import { Request, Response, NextFunction } from "express"; -// import bodyParser from 'body-parser'; -// import cors from 'cors'; import * as jwt from "jsonwebtoken"; +import { + ExpressMiddlewareInterface, Middleware +} from "routing-controllers"; -export default (req: Request, res: Response, next: NextFunction) => { - const token = req.headers["auth"]; - try { - const jwtPayload = jwt.verify(token, "secretjwtsecret"); - // const jwtPayload = jwt.verify(token, process.env.JWT_SECRET); - res.locals.jwtPayload = jwtPayload; - } catch (error) { - console.log(error); - return res.status(401).send(); - } - next(); -}; +@Middleware({ type: "before" }) +export class JWTAuth implements ExpressMiddlewareInterface { + use(request: any, response: any, next?: (err?: any) => any): any { + const token = request.headers["auth"]; + try { + const jwtPayload = jwt.verify(token, "secretjwtsecret"); + // const jwtPayload = jwt.verify(token, process.env.JWT_SECRET); + response.locals.jwtPayload = jwtPayload; + } catch (error) { + console.log(error); + return response.status(401).send(); + } + next(); + } +}