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