From 95096ea2641af9619ebdcbb89cb0ef93d3d4d881 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Tue, 7 May 2024 17:06:53 -0700 Subject: [PATCH] refactor(auth): move mfa challenge to its own component This will allow us to reuse the component in other places. --- src/lib/components/index.ts | 1 + .../components/mfaChallengeFormList.svelte | 134 +++++++++++++++++ src/routes/mfa/+page.svelte | 137 ++---------------- 3 files changed, 149 insertions(+), 123 deletions(-) create mode 100644 src/lib/components/mfaChallengeFormList.svelte diff --git a/src/lib/components/index.ts b/src/lib/components/index.ts index 685b34d63..da5859ab4 100644 --- a/src/lib/components/index.ts +++ b/src/lib/components/index.ts @@ -73,3 +73,4 @@ export { default as RadioBoxes } from './radioBoxes.svelte'; export { default as ModalWrapper } from './modalWrapper.svelte'; export { default as ModalSideCol } from './modalSideCol.svelte'; export { default as ImagePreview } from './imagePreview.svelte'; +export { default as MfaChallengeFormList } from './mfaChallengeFormList.svelte'; diff --git a/src/lib/components/mfaChallengeFormList.svelte b/src/lib/components/mfaChallengeFormList.svelte new file mode 100644 index 000000000..96e77daf2 --- /dev/null +++ b/src/lib/components/mfaChallengeFormList.svelte @@ -0,0 +1,134 @@ + + + + + + {#if challengeType == AuthenticationFactor.Recoverycode} +

+ Enter below one of the recovery codes you received when enabling MFA for this account. +

+ + {:else} + {#if factors.totp && (challengeType == AuthenticationFactor.Totp || challengeType == null)} +

Enter below a 6-digit one-time code generated by your authentication app.

+ {:else if challengeType == AuthenticationFactor.Email} +

A 6-digit verification code was sent to your email, enter it below.

+ {:else if challengeType == AuthenticationFactor.Phone} +

A 6-digit verification code was sent to your phone, enter it below.

+ {/if} + + {/if} + {#if showVerifyButton} + + + + {/if} + {#if enabledFactors.length > 1} + or +
+ {#if factors.totp && challengeType != null && challengeType != AuthenticationFactor.Totp} + + + + {/if} + {#if factors.email && challengeType != AuthenticationFactor.Email} + + + + {/if} + {#if factors.phone && challengeType != AuthenticationFactor.Phone} + + + + {/if} + {#if factors.recoveryCode && challengeType != AuthenticationFactor.Recoverycode} + + + + {/if} +
+ {/if} +
diff --git a/src/routes/mfa/+page.svelte b/src/routes/mfa/+page.svelte index 389889db7..93b63c82b 100644 --- a/src/routes/mfa/+page.svelte +++ b/src/routes/mfa/+page.svelte @@ -1,58 +1,31 @@ @@ -91,89 +63,8 @@ Verify your identity -
- - {#if factors.totp && (challengeType == AuthenticationFactor.Totp || challengeType == null)} -

- Enter below a 6-digit one-time code generated by your authentication app. -

- - {:else if challengeType == AuthenticationFactor.Email} -

- A 6-digit verification code was sent to your email, enter it below. -

- - {:else if challengeType == AuthenticationFactor.Phone} -

- A 6-digit verification code was sent to your phone, enter it below. -

- - {:else if challengeType == AuthenticationFactor.Recoverycode} -

- Enter below one of the recovery codes you received when enabling MFA for - this account. -

- - {/if} - - - - {#if enabledFactors.length > 1} - or -
- {#if factors.totp && challengeType != null && challengeType != AuthenticationFactor.Totp} - - - - {/if} - {#if factors.email && challengeType != AuthenticationFactor.Email} - - - - {/if} - {#if factors.phone && challengeType != AuthenticationFactor.Phone} - - - - {/if} - {#if factors.recoveryCode && challengeType != AuthenticationFactor.Recoverycode} - - - - {/if} -
- {/if} -
+ +