diff --git a/packages/next-auth/src/core/lib/providers.ts b/packages/next-auth/src/core/lib/providers.ts index 5f350add7f..29440dfae1 100644 --- a/packages/next-auth/src/core/lib/providers.ts +++ b/packages/next-auth/src/core/lib/providers.ts @@ -30,7 +30,9 @@ export default function parseProviders(params: { return merge(normalizedOptions, { ...normalizedUserOptions, signinUrl: `${url}/signin/${id}`, - callbackUrl: `${url}/callback/${id}`, + callbackUrl: + normalizedUserOptions?.callbackUrl ?? + `${url}/callback/${id}`, }) } const id = (userOptions?.id as string) ?? rest.id diff --git a/packages/next-auth/src/providers/oauth.ts b/packages/next-auth/src/providers/oauth.ts index c476279b12..aa2a60ba37 100644 --- a/packages/next-auth/src/providers/oauth.ts +++ b/packages/next-auth/src/providers/oauth.ts @@ -125,6 +125,7 @@ export interface OAuthConfig

extends CommonProviderOptions, PartialIssuer { jwks?: { keys: JWK[] } clientId?: string clientSecret?: string + callbackUrl?: string /** * If set to `true`, the user information will be extracted * from the `id_token` claims, instead of