Skip to content

Sheet
02 / 05
Rev
2026.08
Title
The front door to identityPlate 03
Author
B. BolekFrankfurt/M
Client
Confidential
Role
Frontend architect
Stack
Next.js · TypeScript · ForgeRock · OIDC

Case study 03 · Confidential

The front door to identity

Registration, authentication, and self-service built on ForgeRock — a Next.js front end driving a journey engine that was never designed to be pretty.


01/Context

ForgeRock drives authentication as a sequence of callbacks: the server decides what to ask next, the client renders it. That is flexible and it is also a good way to end up with an interface that leaks the state machine to the user. The work was a front end that follows the journey engine exactly while looking like one designed product.


02/Constraints

Constraints

The server owns the flow
The client cannot assume a step order. Any screen can be followed by any other, including a step type it has not seen before.
Security posture
No token in local storage, no secrets in the bundle, no error message that tells an attacker which half of the credential was wrong.
Every user
It is the front door. It has to work on an old phone, with a screen reader, and on a slow connection.

03/Architecture

Architecture

Callback rendering
Each ForgeRock callback type maps to a typed component through a single registry. An unknown callback renders a safe generic input instead of breaking the journey.
Session handling
OIDC with tokens held in httpOnly cookies; the browser never sees them. Refresh happens behind a single client boundary rather than scattered through the app.
Accessibility
Real form semantics, focus moved deliberately on every step change, and errors announced rather than only coloured.

04/Outcome

Outcome

  • One component registry covers the whole journey catalogue — a new step type is configuration, not a release.
  • The identity team reorders journeys without waiting on front-end work.
  • Keyboard and screen-reader paths are part of the definition of done, not a later fix.