diff --git a/pods/authProviders/src/github.ts b/pods/authProviders/src/github.ts index bcaea1c0e6..8db90f6a4c 100644 --- a/pods/authProviders/src/github.ts +++ b/pods/authProviders/src/github.ts @@ -6,7 +6,7 @@ import { Strategy as GitHubStrategy } from 'passport-github2' import { Passport } from '.' export function registerGithub ( - ctx: MeasureContext, + measureCtx: MeasureContext, passport: Passport, router: Router, accountsUrl: string, @@ -45,23 +45,27 @@ export function registerGithub ( const email = ctx.state.user.emails?.[0]?.value ?? `github:${ctx.state.user.username}` const [first, last] = ctx.state.user.displayName.split(' ') if (email !== undefined) { - if (ctx.query?.state != null) { - const loginInfo = await joinWithProvider(ctx, db, productId, email, first, last, ctx.query.state, { - githubId: ctx.state.user.id - }) - if (ctx.session != null) { - ctx.session.loginInfo = loginInfo - } - } else { - const loginInfo = await loginWithProvider(ctx, db, productId, email, first, last, { - githubId: ctx.state.user.id - }) - if (ctx.session != null) { - ctx.session.loginInfo = loginInfo + try { + if (ctx.query?.state != null) { + const loginInfo = await joinWithProvider(measureCtx, db, productId, email, first, last, ctx.query.state, { + githubId: ctx.state.user.id + }) + if (ctx.session != null) { + ctx.session.loginInfo = loginInfo + } + } else { + const loginInfo = await loginWithProvider(measureCtx, db, productId, email, first, last, { + githubId: ctx.state.user.id + }) + if (ctx.session != null) { + ctx.session.loginInfo = loginInfo + } } + // Successful authentication, redirect to your application + ctx.redirect(concatLink(frontUrl, '/login/auth')) + } catch (err: any) { + await measureCtx.error('failed to auth', err) } - // Successful authentication, redirect to your application - ctx.redirect(concatLink(frontUrl, '/login/auth')) } await next() } diff --git a/pods/authProviders/src/google.ts b/pods/authProviders/src/google.ts index 850e70eaa8..297722122f 100644 --- a/pods/authProviders/src/google.ts +++ b/pods/authProviders/src/google.ts @@ -6,7 +6,7 @@ import { Strategy as GoogleStrategy } from 'passport-google-oauth20' import { Passport } from '.' export function registerGoogle ( - ctx: MeasureContext, + measureCtx: MeasureContext, passport: Passport, router: Router, accountsUrl: string, @@ -46,19 +46,24 @@ export function registerGoogle ( const first = ctx.state.user.name.givenName const last = ctx.state.user.name.familyName if (email !== undefined) { - if (ctx.query?.state != null) { - const loginInfo = await joinWithProvider(ctx, db, productId, email, first, last, ctx.query.state) - if (ctx.session != null) { - ctx.session.loginInfo = loginInfo - } - } else { - const loginInfo = await loginWithProvider(ctx, db, productId, email, first, last) - if (ctx.session != null) { - ctx.session.loginInfo = loginInfo + try { + if (ctx.query?.state != null) { + const loginInfo = await joinWithProvider(measureCtx, db, productId, email, first, last, ctx.query.state) + if (ctx.session != null) { + ctx.session.loginInfo = loginInfo + } + } else { + const loginInfo = await loginWithProvider(measureCtx, db, productId, email, first, last) + if (ctx.session != null) { + ctx.session.loginInfo = loginInfo + } } + + // Successful authentication, redirect to your application + ctx.redirect(concatLink(frontUrl, '/login/auth')) + } catch (err: any) { + await measureCtx.error('failed to auth', err) } - // Successful authentication, redirect to your application - ctx.redirect(concatLink(frontUrl, '/login/auth')) } await next() }