Skip to content

Commit 0a00391

Browse files
committed
fix: clear verifier map after successful login to minimise memory use
1 parent 3e1593f commit 0a00391

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

apps/web/src/app/(public)/sign-in/_components/wizard/context.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ interface SignInState {
1313
setVfnStepData: Dispatch<SetStateAction<VfnStepData | undefined>>
1414
getVerifier: (challenge: string) => string | undefined
1515
newChallenge: () => string
16+
clearVerifierMap: () => void
1617
}
1718

1819
export const SignInWizardContext = createContext<SignInState | undefined>(
@@ -62,6 +63,9 @@ export const SignInWizardProvider = ({
6263
const getVerifier = useCallback((challenge: string)=>{
6364
return challengeToVerifierMap.current.get(challenge)
6465
}, []) // stable reference no deps
66+
const clearVerifierMap = useCallback(()=>{
67+
challengeToVerifierMap.current.clear()
68+
}, []) // stable reference no deps
6569

6670
const resetTimer = () => setTimer(delayForResendSeconds)
6771

@@ -80,7 +84,8 @@ export const SignInWizardProvider = ({
8084
timer,
8185
resetTimer,
8286
newChallenge,
83-
getVerifier
87+
getVerifier,
88+
clearVerifierMap
8489
}}
8590
>
8691
{children}

apps/web/src/app/(public)/sign-in/_components/wizard/email/verification-step.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export const VerificationStep = () => {
2020
const [showOtpDelayMessage, setShowOtpDelayMessage] = useState(false)
2121
const trpc = useTRPC()
2222

23-
const { vfnStepData, timer, setVfnStepData, resetTimer, newChallenge, getVerifier } = useSignInWizard()
23+
const { vfnStepData, timer, setVfnStepData, resetTimer, newChallenge, getVerifier, clearVerifierMap } = useSignInWizard()
2424
const codeVerifier = getVerifier(vfnStepData?.codeChallenge ?? '') ?? ''
2525

2626
useInterval(
@@ -40,6 +40,7 @@ export const VerificationStep = () => {
4040
const verifyOtpMutation = useMutation(
4141
trpc.auth.email.verifyOtp.mutationOptions({
4242
onSuccess: () => {
43+
clearVerifierMap()
4344
router.refresh()
4445
},
4546
onError: (error) => {

0 commit comments

Comments
 (0)