From bd81b6042d7b4af44dc4e5fc463dc3615f0cb205 Mon Sep 17 00:00:00 2001 From: Rafe Colton Date: Fri, 20 Mar 2026 17:48:52 -0700 Subject: [PATCH 1/2] Enable passkeys for PIN flows --- .../MultifactorAuthentication/config/scenarios/ChangePIN.tsx | 2 +- .../MultifactorAuthentication/config/scenarios/RevealPIN.tsx | 2 +- .../config/scenarios/SetPINOrderCard.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/MultifactorAuthentication/config/scenarios/ChangePIN.tsx b/src/components/MultifactorAuthentication/config/scenarios/ChangePIN.tsx index a603f6f11d483..42d411982dff2 100644 --- a/src/components/MultifactorAuthentication/config/scenarios/ChangePIN.tsx +++ b/src/components/MultifactorAuthentication/config/scenarios/ChangePIN.tsx @@ -47,7 +47,7 @@ const ChangePINSuccessScreen = createScreenWithDefaults( * This scenario is used when a UK/EU cardholder changes the PIN of their physical card. */ export default { - allowedAuthenticationMethods: [CONST.MULTIFACTOR_AUTHENTICATION.TYPE.BIOMETRICS], + allowedAuthenticationMethods: [CONST.MULTIFACTOR_AUTHENTICATION.TYPE.BIOMETRICS, CONST.MULTIFACTOR_AUTHENTICATION.TYPE.PASSKEYS], action: changePINForCard, successScreen: , defaultClientFailureScreen: , diff --git a/src/components/MultifactorAuthentication/config/scenarios/RevealPIN.tsx b/src/components/MultifactorAuthentication/config/scenarios/RevealPIN.tsx index 0cbf65a5353f9..a0dcf6557b61d 100644 --- a/src/components/MultifactorAuthentication/config/scenarios/RevealPIN.tsx +++ b/src/components/MultifactorAuthentication/config/scenarios/RevealPIN.tsx @@ -52,7 +52,7 @@ const ServerFailureScreen = createScreenWithDefaults( * - Authentication failure: Return SHOW_OUTCOME_SCREEN to show failure screen */ export default { - allowedAuthenticationMethods: [CONST.MULTIFACTOR_AUTHENTICATION.TYPE.BIOMETRICS], + allowedAuthenticationMethods: [CONST.MULTIFACTOR_AUTHENTICATION.TYPE.BIOMETRICS, CONST.MULTIFACTOR_AUTHENTICATION.TYPE.PASSKEYS], action: revealPINForCard, callback: async (isSuccessful, callbackInput, payload) => { if (isSuccessful && isRevealPINPayload(payload)) { diff --git a/src/components/MultifactorAuthentication/config/scenarios/SetPINOrderCard.tsx b/src/components/MultifactorAuthentication/config/scenarios/SetPINOrderCard.tsx index 0d6ef53897e91..0809a428abd88 100644 --- a/src/components/MultifactorAuthentication/config/scenarios/SetPINOrderCard.tsx +++ b/src/components/MultifactorAuthentication/config/scenarios/SetPINOrderCard.tsx @@ -65,7 +65,7 @@ const ServerFailureScreen = createScreenWithDefaults( * - Authentication failure: Return SHOW_OUTCOME_SCREEN to show failure screen */ export default { - allowedAuthenticationMethods: [CONST.MULTIFACTOR_AUTHENTICATION.TYPE.BIOMETRICS], + allowedAuthenticationMethods: [CONST.MULTIFACTOR_AUTHENTICATION.TYPE.BIOMETRICS, CONST.MULTIFACTOR_AUTHENTICATION.TYPE.PASSKEYS], action: setPersonalDetailsAndShipExpensifyCardsWithPIN, callback: async (isSuccessful, _callbackInput, payload) => { From 7dae0e1f98f2406a3fb96a8cfadb36440717529a Mon Sep 17 00:00:00 2001 From: Rafe Colton Date: Fri, 20 Mar 2026 18:04:22 -0700 Subject: [PATCH 2/2] Updates tests --- .../MultifactorAuthentication/config/scenarios/index.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/components/MultifactorAuthentication/config/scenarios/index.test.ts b/tests/unit/components/MultifactorAuthentication/config/scenarios/index.test.ts index dbc890bdaac28..8578e058d7f4a 100644 --- a/tests/unit/components/MultifactorAuthentication/config/scenarios/index.test.ts +++ b/tests/unit/components/MultifactorAuthentication/config/scenarios/index.test.ts @@ -108,7 +108,7 @@ describe('MultifactorAuthentication Scenarios Config', () => { const setPinScenario = config[CONST.MULTIFACTOR_AUTHENTICATION.SCENARIO.SET_PIN_ORDER_CARD]; expect(setPinScenario).toBeDefined(); - expect(setPinScenario.allowedAuthenticationMethods).toStrictEqual([CONST.MULTIFACTOR_AUTHENTICATION.TYPE.BIOMETRICS]); + expect(setPinScenario.allowedAuthenticationMethods).toStrictEqual([CONST.MULTIFACTOR_AUTHENTICATION.TYPE.BIOMETRICS, CONST.MULTIFACTOR_AUTHENTICATION.TYPE.PASSKEYS]); expect(setPinScenario.action).toBeDefined(); expect(setPinScenario.callback).toBeDefined(); expect(typeof setPinScenario.callback).toBe('function');