diff --git a/src/server/auth.ts b/src/server/auth.ts index fb0d6f3..19fb0d4 100644 --- a/src/server/auth.ts +++ b/src/server/auth.ts @@ -37,7 +37,7 @@ declare module "next-auth" { * * @see https://stackoverflow.com/a/75526977 */ -declare module 'next-auth/jwt' { +declare module "next-auth/jwt" { interface JWT { id_token?: string; provider?: string; @@ -56,9 +56,14 @@ const originLinkAccount = adapter.linkAccount; */ adapter.linkAccount = (account: AdapterAccount) => { // eslint-disable-next-line @typescript-eslint/no-unused-vars - const { 'not-before-policy': _, refresh_expires_in, ...data } = account; + const { "not-before-policy": _, refresh_expires_in, ...data } = account; + + if (!originLinkAccount) { + return; + } + return originLinkAccount(data); -} +}; /** * Options for NextAuth.js used to configure adapters, providers, callbacks, etc. @@ -83,10 +88,10 @@ export const authOptions: NextAuthOptions = { */ jwt({ token, account }) { if (account) { - token.id_token = account?.id_token - token.provider = account?.provider + token.id_token = account?.id_token; + token.provider = account?.provider; } - return token + return token; }, }, adapter: adapter, @@ -119,12 +124,14 @@ export const authOptions: NextAuthOptions = { */ async signOut({ token }: { token: JWT }) { if (token.provider === "keycloak") { - const logOutURL = new URL(`${env.KEYCLOAK_ISSUER}/protocol/openid-connect/logout`) - logOutURL.searchParams.set("id_token_hint", token.id_token ?? '') + const logOutURL = new URL( + `${env.KEYCLOAK_ISSUER}/protocol/openid-connect/logout` + ); + logOutURL.searchParams.set("id_token_hint", token.id_token ?? ""); await fetch(logOutURL); } }, - } + }, }; /**