From 1a8b3ce6a71f28f2332ebb2b9f5275ee270d5435 Mon Sep 17 00:00:00 2001 From: David Arranz Date: Sun, 8 Sep 2024 14:53:56 +0200 Subject: [PATCH] . --- .../express/controllers/identity/Identity.controller.ts | 3 ++- .../express/controllers/login/Login.controller.ts | 3 ++- .../infrastructure/express/passport/authMiddleware.ts | 8 ++++---- .../updateProfile/UpdateProfile.controller.ts | 9 ++++++++- .../src/infrastructure/express/api/routes/auth.routes.ts | 9 +++++++-- 5 files changed, 23 insertions(+), 9 deletions(-) diff --git a/server/src/contexts/auth/infrastructure/express/controllers/identity/Identity.controller.ts b/server/src/contexts/auth/infrastructure/express/controllers/identity/Identity.controller.ts index 8ebb628..2c910c4 100644 --- a/server/src/contexts/auth/infrastructure/express/controllers/identity/Identity.controller.ts +++ b/server/src/contexts/auth/infrastructure/express/controllers/identity/Identity.controller.ts @@ -30,7 +30,8 @@ export class IdentityController extends ExpressController { async executeImpl() { try { - const user = this.req.user; + const req = this.req as AuthenticatedRequest; + const user = req.user; if (!user) { const errorMessage = "Unexpected missing user data"; diff --git a/server/src/contexts/auth/infrastructure/express/controllers/login/Login.controller.ts b/server/src/contexts/auth/infrastructure/express/controllers/login/Login.controller.ts index 6b2a32d..4f867c7 100644 --- a/server/src/contexts/auth/infrastructure/express/controllers/login/Login.controller.ts +++ b/server/src/contexts/auth/infrastructure/express/controllers/login/Login.controller.ts @@ -32,7 +32,8 @@ export class LoginController extends ExpressController { async executeImpl() { try { - const user = this.req.user; + const req = this.req as AuthenticatedRequest; + const user = req.user; if (!user) { const errorMessage = "Unexpected missing user data"; diff --git a/server/src/contexts/auth/infrastructure/express/passport/authMiddleware.ts b/server/src/contexts/auth/infrastructure/express/passport/authMiddleware.ts index afc8106..9fc1fef 100644 --- a/server/src/contexts/auth/infrastructure/express/passport/authMiddleware.ts +++ b/server/src/contexts/auth/infrastructure/express/passport/authMiddleware.ts @@ -1,7 +1,7 @@ import { AuthUser } from "@/contexts/auth/domain"; import { composeMiddleware, generateExpressError } from "@/contexts/common/infrastructure/express"; import { ensureIdIsValid } from "@shared/contexts"; -import * as express from "express"; +import Express, * as express from "express"; import httpStatus from "http-status"; import passport from "passport"; @@ -13,7 +13,7 @@ export const checkUser = composeMiddleware([ passport.authenticate("local-jwt", { session: false, }), - (req: express.Request, res: express.Response, next: express.NextFunction) => { + (req: Express.Request, res: Express.Response, next: Express.NextFunction) => { if (req.isAuthenticated()) { return next(); } @@ -23,7 +23,7 @@ export const checkUser = composeMiddleware([ export const checkisAdmin = composeMiddleware([ checkUser, - (req: express.Request, res: express.Response, next: express.NextFunction) => { + (req: Express.Request, res: Express.Response, next: Express.NextFunction) => { const _req = req as AuthenticatedRequest; const user = _req.user; @@ -36,7 +36,7 @@ export const checkisAdmin = composeMiddleware([ export const checkAdminOrSelf = composeMiddleware([ checkUser, - (req: express.Request, res: express.Response, next: express.NextFunction) => { + (req: Express.Request, res: Express.Response, next: Express.NextFunction) => { const _req = req as AuthenticatedRequest; const user = _req.user; diff --git a/server/src/contexts/profile/infrastructure/express/controllers/updateProfile/UpdateProfile.controller.ts b/server/src/contexts/profile/infrastructure/express/controllers/updateProfile/UpdateProfile.controller.ts index 3c0e12d..938ea6b 100644 --- a/server/src/contexts/profile/infrastructure/express/controllers/updateProfile/UpdateProfile.controller.ts +++ b/server/src/contexts/profile/infrastructure/express/controllers/updateProfile/UpdateProfile.controller.ts @@ -12,6 +12,12 @@ import { import { IProfileContext } from "../../../Profile.context"; import { IUpdateProfilePresenter } from "./presenter"; +import { Request } from "express"; + +interface AuthenticatedRequest extends Request { + user?: User; +} + export class UpdateProfileController extends ExpressController { private useCase: UpdateProfileUseCase; private presenter: IUpdateProfilePresenter; @@ -33,7 +39,8 @@ export class UpdateProfileController extends ExpressController { } async executeImpl() { - const user = this.req.user; + const req = this.req as AuthenticatedRequest; + const user = req.user; if (!user) { const errorMessage = "Unexpected missing Profile data"; diff --git a/server/src/infrastructure/express/api/routes/auth.routes.ts b/server/src/infrastructure/express/api/routes/auth.routes.ts index 5c7c23d..cbb3be4 100644 --- a/server/src/infrastructure/express/api/routes/auth.routes.ts +++ b/server/src/infrastructure/express/api/routes/auth.routes.ts @@ -1,7 +1,12 @@ import { checkUser, createLoginController } from "@/contexts/auth"; -import * as express from "express"; +import Express, * as express from "express"; import passport from "passport"; +interface AuthenticatedRequest extends Express.Request { + logout(options: passport.LogOutOptions, done: (err: any) => void): void; + logout(done: (err: any) => void): void; +} + export const authRouter = (appRouter: express.Router) => { const authRoutes: express.Router = express.Router({ mergeParams: true }); @@ -16,7 +21,7 @@ export const authRouter = (appRouter: express.Router) => { ); authRoutes.post("/logout", checkUser, (req: express.Request, res: express.Response) => { - const _req = req as Express.Request; + const _req = req as AuthenticatedRequest; _req.logout(function (err) { if (err) { return res.status(500).json();