diff --git a/packages/worker/src/api/controllers/global/auth.ts b/packages/worker/src/api/controllers/global/auth.ts index 362723abd9..1286fd519d 100644 --- a/packages/worker/src/api/controllers/global/auth.ts +++ b/packages/worker/src/api/controllers/global/auth.ts @@ -204,13 +204,16 @@ export const googleCallback = async (ctx: any, next: any) => { return passport.authenticate( strategy, - { successRedirect: "/", failureRedirect: "/error" }, + { + successRedirect: env.PASSPORT_GOOGLEAUTH_SUCCESS_REDIRECT, + failureRedirect: env.PASSPORT_GOOGLEAUTH_FAILURE_REDIRECT, + }, async (err: any, user: SSOUser, info: any) => { await passportCallback(ctx, user, err, info) await context.identity.doInUserContext(user, ctx, async () => { await events.auth.login("google-internal", user.email) }) - ctx.redirect("/") + ctx.redirect(env.PASSPORT_GOOGLEAUTH_SUCCESS_REDIRECT) } )(ctx, next) } @@ -269,13 +272,16 @@ export const oidcCallback = async (ctx: any, next: any) => { return passport.authenticate( strategy, - { successRedirect: "/", failureRedirect: "/error" }, + { + successRedirect: env.PASSPORT_OIDCAUTH_SUCCESS_REDIRECT, + failureRedirect: env.PASSPORT_OIDCAUTH_FAILURE_REDIRECT, + }, async (err: any, user: SSOUser, info: any) => { await passportCallback(ctx, user, err, info) await context.identity.doInUserContext(user, ctx, async () => { await events.auth.login("oidc", user.email) }) - ctx.redirect("/") + ctx.redirect(env.PASSPORT_OIDCAUTH_SUCCESS_REDIRECT) } )(ctx, next) } diff --git a/packages/worker/src/environment.ts b/packages/worker/src/environment.ts index 3f762ea5ab..812af6aacd 100644 --- a/packages/worker/src/environment.ts +++ b/packages/worker/src/environment.ts @@ -66,6 +66,15 @@ const environment = { * Mock the email service in use - links to ethereal hosted emails are logged instead. */ ENABLE_EMAIL_TEST_MODE: process.env.ENABLE_EMAIL_TEST_MODE, + PASSPORT_GOOGLEAUTH_SUCCESS_REDIRECT: + process.env.PASSPORT_GOOGLEAUTH_SUCCESS_REDIRECT || "/", + PASSPORT_GOOGLEAUTH_FAILURE_REDIRECT: + process.env.PASSPORT_GOOGLEAUTH_FAILURE_REDIRECT || "/error", + PASSPORT_OIDCAUTH_SUCCESS_REDIRECT: + process.env.PASSPORT_OIDCAUTH_SUCCESS_REDIRECT || "/", + PASSPORT_OIDCAUTH_FAILURE_REDIRECT: + process.env.PASSPORT_OIDCAUTH_FAILURE_REDIRECT || "/error", + _set(key: any, value: any) { process.env[key] = value // @ts-ignore