diff --git a/packages/api/src/routes/auth/callbacks/createJWTCallback.js b/packages/api/src/routes/auth/callbacks/createJWTCallback.js index 18caea10f3..922f937181 100644 --- a/packages/api/src/routes/auth/callbacks/createJWTCallback.js +++ b/packages/api/src/routes/auth/callbacks/createJWTCallback.js @@ -23,9 +23,55 @@ function createJWTCallback({ authConfig, plugins }) { type: 'jwt', }); - if (jwtCallbackPlugins.length === 0) return undefined; - async function jwtCallback({ token, user, account, profile, isNewUser }) { + if (profile) { + const { + sub, + name, + given_name, + family_name, + middle_name, + nickname, + preferred_username, + profile: profile_claim, + picture, + website, + email, + email_verified, + gender, + birthdate, + zoneinfo, + locale, + phone_number, + phone_number_verified, + address, + updated_at, + } = profile; + token = { + sub, + name, + given_name, + family_name, + middle_name, + nickname, + preferred_username, + profile: profile_claim, + picture, + website, + email, + email_verified, + gender, + birthdate, + zoneinfo, + locale, + phone_number, + phone_number_verified, + address, + updated_at, + ...token, + }; + } + for (const plugin of jwtCallbackPlugins) { token = await plugin.fn({ properties: plugin.properties ?? {}, diff --git a/packages/api/src/routes/auth/callbacks/createSessionCallback.js b/packages/api/src/routes/auth/callbacks/createSessionCallback.js index 60d69cbf7f..3edbbdf6d7 100644 --- a/packages/api/src/routes/auth/callbacks/createSessionCallback.js +++ b/packages/api/src/routes/auth/callbacks/createSessionCallback.js @@ -24,8 +24,53 @@ function createSessionCallback({ authConfig, plugins }) { }); async function sessionCallback({ session, token, user }) { + // console.log({ session, token, user }); if (token) { - session.user.sub = token.sub; + const { + sub, + name, + given_name, + family_name, + middle_name, + nickname, + preferred_username, + profile, + picture, + website, + email, + email_verified, + gender, + birthdate, + zoneinfo, + locale, + phone_number, + phone_number_verified, + address, + updated_at, + } = token; + session.user = { + sub, + name, + given_name, + family_name, + middle_name, + nickname, + preferred_username, + profile, + picture, + website, + email, + email_verified, + gender, + birthdate, + zoneinfo, + locale, + phone_number, + phone_number_verified, + address, + updated_at, + ...session.user, + }; } for (const plugin of sessionCallbackPlugins) {