diff --git a/.changeset/soft-hotels-report.md b/.changeset/soft-hotels-report.md new file mode 100644 index 0000000000..34f0cb75cd --- /dev/null +++ b/.changeset/soft-hotels-report.md @@ -0,0 +1,5 @@ +--- +"@medusajs/medusa": patch +--- + +feat(medusa): include user_metadata in auth routes jwt diff --git a/packages/medusa/src/api/auth/[actor_type]/[auth_provider]/callback/route.ts b/packages/medusa/src/api/auth/[actor_type]/[auth_provider]/callback/route.ts index a42f923b98..224cc9c685 100644 --- a/packages/medusa/src/api/auth/[actor_type]/[auth_provider]/callback/route.ts +++ b/packages/medusa/src/api/auth/[actor_type]/[auth_provider]/callback/route.ts @@ -36,7 +36,7 @@ export const GET = async (req: MedusaRequest, res: MedusaResponse) => { const { http } = config.projectConfig const token = generateJwtTokenForAuthIdentity( - { authIdentity, actorType: actor_type }, + { authIdentity, actorType: actor_type, authProvider: auth_provider }, { secret: http.jwtSecret!, expiresIn: http.jwtExpiresIn, diff --git a/packages/medusa/src/api/auth/[actor_type]/[auth_provider]/register/route.ts b/packages/medusa/src/api/auth/[actor_type]/[auth_provider]/register/route.ts index 1e790ab97c..9990831528 100644 --- a/packages/medusa/src/api/auth/[actor_type]/[auth_provider]/register/route.ts +++ b/packages/medusa/src/api/auth/[actor_type]/[auth_provider]/register/route.ts @@ -39,6 +39,7 @@ export const POST = async (req: MedusaRequest, res: MedusaResponse) => { { authIdentity, actorType: actor_type, + authProvider: auth_provider, }, { secret: http.jwtSecret!, diff --git a/packages/medusa/src/api/auth/[actor_type]/[auth_provider]/route.ts b/packages/medusa/src/api/auth/[actor_type]/[auth_provider]/route.ts index ca1cf6eeeb..3722bc056b 100644 --- a/packages/medusa/src/api/auth/[actor_type]/[auth_provider]/route.ts +++ b/packages/medusa/src/api/auth/[actor_type]/[auth_provider]/route.ts @@ -43,6 +43,7 @@ export const GET = async (req: MedusaRequest, res: MedusaResponse) => { { authIdentity, actorType: actor_type, + authProvider: auth_provider, }, { secret: http.jwtSecret!, diff --git a/packages/medusa/src/api/auth/utils/generate-jwt-token.ts b/packages/medusa/src/api/auth/utils/generate-jwt-token.ts index 0f38c3f90f..e6a7250ebf 100644 --- a/packages/medusa/src/api/auth/utils/generate-jwt-token.ts +++ b/packages/medusa/src/api/auth/utils/generate-jwt-token.ts @@ -9,7 +9,12 @@ export function generateJwtTokenForAuthIdentity( { authIdentity, actorType, - }: { authIdentity: AuthIdentityDTO; actorType: string }, + authProvider, + }: { + authIdentity: AuthIdentityDTO + actorType: string + authProvider?: string + }, { secret, expiresIn, @@ -26,6 +31,12 @@ export function generateJwtTokenForAuthIdentity( | string | undefined + const providerIdentity = !authProvider + ? undefined + : authIdentity.provider_identities?.filter( + (identity) => identity.provider === authProvider + )[0] + return generateJwtToken( { actor_id: entityId ?? "", @@ -34,6 +45,7 @@ export function generateJwtTokenForAuthIdentity( app_metadata: { [entityIdKey]: entityId, }, + user_metadata: providerIdentity?.user_metadata ?? {}, }, { secret,