From d2c2c2a9964c61f8ea77e5e7c9042b9d08a838ef Mon Sep 17 00:00:00 2001 From: Matt Kirby <MattJKirby@outlook.com> Date: Sat, 15 Apr 2023 01:28:50 +0100 Subject: [PATCH] Aut middleware with extra secret token --- .../friend-service/src/Middleware/Auth.ts | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 backend-services/friend-service/src/Middleware/Auth.ts diff --git a/backend-services/friend-service/src/Middleware/Auth.ts b/backend-services/friend-service/src/Middleware/Auth.ts new file mode 100644 index 00000000..69502a41 --- /dev/null +++ b/backend-services/friend-service/src/Middleware/Auth.ts @@ -0,0 +1,27 @@ +import jwt, { Secret, JwtPayload } from 'jsonwebtoken'; +import { Request, Response, NextFunction } from 'express'; + +export const SECRET_KEY: Secret = 'abcdefg12345'; + +export interface CustomJWTRequest extends Request { + token?: string | JwtPayload; +} + +export const authorize = async (req: Request, res: Response, next: NextFunction) => { + try { + const authHeader = req.headers.authorization; + const token = authHeader?.split(" ")[1]; + + if (!token) { + throw new Error(); + } + + const decoded = jwt.verify(token, SECRET_KEY); + (req as CustomJWTRequest).token = decoded; + + next(); + } catch (err) { + console.log(err) + res.status(401).send('Please authenticate'); + } +}; \ No newline at end of file -- GitLab