{ssoConnectors.map((connector) => {
diff --git a/packages/experience/src/pages/SingleSignOnEmail/index.tsx b/packages/experience/src/pages/SingleSignOnEmail/index.tsx
index 786d1a2ca..86437fe4d 100644
--- a/packages/experience/src/pages/SingleSignOnEmail/index.tsx
+++ b/packages/experience/src/pages/SingleSignOnEmail/index.tsx
@@ -3,7 +3,7 @@ import { useCallback, useContext, useEffect } from 'react';
import { Controller, useForm } from 'react-hook-form';
import SecondaryPageLayout from '@/Layout/SecondaryPageLayout';
-import SingleSignOnContext from '@/Providers/SingleSignOnContextProvider/SingleSignOnContext';
+import UserInteractionContext from '@/Providers/UserInteractionContextProvider/UserInteractionContext';
import LockIcon from '@/assets/icons/lock.svg';
import Button from '@/components/Button';
import ErrorMessage from '@/components/ErrorMessage';
@@ -21,7 +21,7 @@ type FormState = {
const SingleSignOnEmail = () => {
const { errorMessage, clearErrorMessage, onSubmit } = useOnSubmit();
- const { email } = useContext(SingleSignOnContext);
+ const { ssoEmail } = useContext(UserInteractionContext);
const {
handleSubmit,
@@ -73,7 +73,7 @@ const SingleSignOnEmail = () => {
className={styles.inputField}
{...field}
isDanger={!!errors.identifier}
- defaultValue={email}
+ defaultValue={ssoEmail}
errorMessage={errors.identifier?.message}
enabledTypes={[SignInIdentifier.Email]}
/>
diff --git a/packages/experience/src/types/guard.ts b/packages/experience/src/types/guard.ts
index d52ab1723..5d40ea3dd 100644
--- a/packages/experience/src/types/guard.ts
+++ b/packages/experience/src/types/guard.ts
@@ -119,3 +119,20 @@ export const ssoConnectorMetadataGuard: s.Describe = s.obj
darkLogo: s.optional(s.string()),
connectorName: s.string(),
});
+
+/**
+ * Defines the structure for caching the current user's identifier.
+ *
+ * Purpose:
+ * - Used in conjunction with the HiddenIdentifierInput component to assist
+ * password managers in associating the correct identifier with passwords.
+ *
+ * - Cache the identifier so that when the user returns from the verification
+ * page or the password page, the identifier they entered will not be cleared.
+ */
+export const currentIdentifierSessionGuard = s.object({
+ type: s.enums([SignInIdentifier.Email, SignInIdentifier.Phone, SignInIdentifier.Username]),
+ value: s.string(),
+});
+
+export type CurrentIdentifierSession = s.Infer;