Skip to content

feat: Adds full NFC PIN authenticator support to the SIW(Gen2 and Gen3). #4081

Open
praveendurai-okta wants to merge 34 commits into
masterfrom
pd-KTA-1141263-nfc-support
Open

feat: Adds full NFC PIN authenticator support to the SIW(Gen2 and Gen3). #4081
praveendurai-okta wants to merge 34 commits into
masterfrom
pd-KTA-1141263-nfc-support

Conversation

@praveendurai-okta

@praveendurai-okta praveendurai-okta commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Description:

NFC PIN is a new proximity-based authenticator that allows users to authenticate by tapping an NFC device and entering a PIN.
This PR implements:

  • Sign in with NFC — Launch button on the identify page that triggers OV via loopback probing or Custom URI scheme
  • NFC device challenge (polling) — Intermediate screen while OV communicates with the NFC card, with automatic OV launch and
    poll-based state transitions
  • PIN verification — "Verify with your PIN" screen after NFC card is scanned, with Forgot PIN and switch authenticator links
  • PIN enrollment — "Choose a PIN" flow with exact-length validation, numeric-only enforcement, and confirm PIN matching
  • Authenticator selection — NFC PIN appears in authenticator lists for both enrollment and verification

Key Design Decisions

  • Reuses existing BaseOktaVerifyChallengeView (v2) and transformOktaVerifyFPLoopbackPoll (v3) for LOOPBACK device challenges
  • PIN creation reuses PasswordRequirements and PasswordMatches components with NFC-specific labels
  • Supports both currentAuthenticator and currentAuthenticatorEnrollment paths for the recover (Forgot PIN) action
  • challenge-poll step uses contextualData.challenge.value path; device-challenge-poll handled by generic
    DeviceChallengePollView
  • v2 and v3 implementations maintain full parity

PR Checklist

Issue:

Reviewers:

Screenshot/Video:

Gen 2/ V2

Enrollment Flow

https://drive.google.com/file/d/1NPk6VGjxCAJnNS-clf9LtL4JCrV4bzWy/view?usp=drive_link

Verify with Pin Reset

https://drive.google.com/file/d/1ToW86UVMlz4UIP1KvRQjaBCc4kIgznuA/view?usp=drive_link

Launch NFC Flow

https://drive.google.com/file/d/1x16rlDFRn_LEW8ofUmpCfk9TWm2-9VI5/view?usp=drive_link

Gen 3/ V3

Enrollment Flow

https://drive.google.com/file/d/1WfsD8ZA3HSfmROXnSD3GflnlYM4N3mkB/view?usp=drive_link

Verify with Pin Reset

https://drive.google.com/file/d/13PLy6WSaCJKc63y-HrhQavyedmybH3UD/view?usp=drive_link

Launch NFC Flow

https://drive.google.com/file/d/1Vim5ihA4DWTb6DXp5uEYOtQbUu9vEKMl/view?usp=drive_link

Downstream Monolith Build:

https://bacon-go.aue1e.saasure.net/commits?artifact=monolith&page=1&pageSize=6&sha=182662c9bc341b61fcd42e1cd44ebdd37c8781db&tab=main

SIWv3_Build

https://bacon-go.aue1e.saasure.net/commits?artifact=monolith&branch=SIWv3-builder-pd-nfc-pin-182662c9bc341b61fcd42e1cd44ebdd37c8781db&page=1&pageSize=6&tab=main

IE test run

https://bacon-go.aue1e.saasure.net/tasks/CB_MULTI_BS?taskId=c703d520f3ad46029ff982c5b746ad66
https://bacon-go.aue1e.saasure.net/tasks/CB_MULTI_BS?taskId=662393463ce2471d9b2be2b43aa1d696

@praveendurai-okta
praveendurai-okta force-pushed the pd-KTA-1141263-nfc-support branch from 34b0e4c to 8658bc7 Compare July 11, 2026 02:38
@praveendurai-okta praveendurai-okta changed the title Pd kta 1141263 nfc support Adds full NFC PIN authenticator support to the Sign-In Widget (Gen2 and Gen3). Jul 16, 2026
@praveendurai-okta praveendurai-okta changed the title Adds full NFC PIN authenticator support to the Sign-In Widget (Gen2 and Gen3). Adds full NFC PIN authenticator support to the SIW(Gen2 and Gen3). Jul 16, 2026
@praveendurai-okta
praveendurai-okta force-pushed the pd-KTA-1141263-nfc-support branch from f7bea6b to 96c53b2 Compare July 16, 2026 15:51
@praveendurai-okta praveendurai-okta changed the title Adds full NFC PIN authenticator support to the SIW(Gen2 and Gen3). feat: Adds full NFC PIN authenticator support to the SIW(Gen2 and Gen3). Jul 16, 2026
@praveendurai-okta
praveendurai-okta marked this pull request as ready for review July 17, 2026 19:27
@praveendurai-okta
praveendurai-okta force-pushed the pd-KTA-1141263-nfc-support branch from 979299a to 6f1e7e3 Compare July 21, 2026 17:46
Comment thread src/v2/view-builder/views/nfcPin/ChallengeNfcPinPollView.js Outdated
Comment thread src/v3/src/transformer/nfcPin/transformNfcPinCreate.ts Outdated
Comment thread src/v3/src/transformer/nfcPin/transformNfcPinCreate.ts Outdated
Comment thread src/v2/view-builder/views/nfcPin/ChallengeNfcPinPollView.js Outdated
Comment thread src/v2/view-builder/views/nfcPin/EnrollNfcPinView.js Outdated
Comment thread src/v2/view-builder/views/nfcPin/EnrollNfcPinPollView.js Outdated
Comment thread src/v3/src/transformer/nfcPin/transformNfcPinEnroll.ts Outdated
@praveendurai-okta
praveendurai-okta force-pushed the pd-KTA-1141263-nfc-support branch from 16a0f11 to c637e30 Compare July 22, 2026 14:51

@LazarVuckovic-okta LazarVuckovic-okta left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚢

@Luxu2-Okta Luxu2-Okta left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, please make sure to run all the tests as well

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants