From 1a2f513d5361101b4c606b710a3905025118289e Mon Sep 17 00:00:00 2001 From: Adrien de Peretti Date: Mon, 18 Dec 2023 17:02:51 +0100 Subject: [PATCH] fix(medusa): Passport loader resolving to early (#5901) * fix(medusa): Passport loader resolving to early * fix(medusa): Passport loader resolving to early * Create hungry-bikes-give.md --- .changeset/hungry-bikes-give.md | 5 +++++ packages/medusa/src/loaders/index.ts | 2 +- packages/medusa/src/loaders/passport.ts | 12 ++++++------ 3 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 .changeset/hungry-bikes-give.md diff --git a/.changeset/hungry-bikes-give.md b/.changeset/hungry-bikes-give.md new file mode 100644 index 0000000000..dabdc991dd --- /dev/null +++ b/.changeset/hungry-bikes-give.md @@ -0,0 +1,5 @@ +--- +"@medusajs/medusa": patch +--- + +fix(medusa): Passport loader resolving to early diff --git a/packages/medusa/src/loaders/index.ts b/packages/medusa/src/loaders/index.ts index 3dda60962d..8db7b16c51 100644 --- a/packages/medusa/src/loaders/index.ts +++ b/packages/medusa/src/loaders/index.ts @@ -184,7 +184,7 @@ export default async ({ const expActivity = Logger.activity(`Initializing express${EOL}`) track("EXPRESS_INIT_STARTED") await expressLoader({ app: expressApp, configModule }) - await passportLoader({ app: expressApp, container, configModule }) + await passportLoader({ app: expressApp, configModule }) const exAct = Logger.success(expActivity, "Express intialized") || {} track("EXPRESS_INIT_COMPLETED", { duration: exAct.duration }) diff --git a/packages/medusa/src/loaders/passport.ts b/packages/medusa/src/loaders/passport.ts index e40764b00d..865209aa24 100644 --- a/packages/medusa/src/loaders/passport.ts +++ b/packages/medusa/src/loaders/passport.ts @@ -4,27 +4,26 @@ import { Strategy as CustomStrategy } from "passport-custom" import { ExtractJwt, Strategy as JWTStrategy } from "passport-jwt" import { Strategy as LocalStrategy } from "passport-local" import { AuthService } from "../services" -import { ConfigModule, MedusaContainer } from "../types/global" +import { ConfigModule } from "../types/global" +import { MedusaRequest } from "../types/routing" export default async ({ app, - container, configModule, }: { app: Express - container: MedusaContainer configModule: ConfigModule }): Promise => { - const authService = container.resolve("authService") - // For good old email password authentication passport.use( new LocalStrategy( { usernameField: "email", passwordField: "password", + passReqToCallback: true, }, - async (email, password, done) => { + async (req: MedusaRequest, email, password, done) => { + const authService = req.scope.resolve("authService") try { const { success, user } = await authService.authenticate( email, @@ -84,6 +83,7 @@ export default async ({ return done(null, false) } + const authService = req.scope.resolve("authService") const auth = await authService.authenticateAPIToken(token) if (auth.success) { done(null, auth.user)