---
title: Getting Started with the Journey module for React Native
description: Add the Journey module to a React Native app to authenticate users against PingOne Advanced Identity Cloud or PingAM using authentication journeys
component: orchsdks
page_id: orchsdks:journey:usage/react-native/index
canonical_url: https://developer.pingidentity.com/orchsdks/journey/usage/react-native/index.html
llms_txt: https://developer.pingidentity.com/orchsdks/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
revdate: Wed, 6 May 2026 00:00:00 +0000
keywords: ["DaVinci", "Flows", "Tutorial", "Source Code", "Integration", "SDK", "React Native"]
section_ids:
  configuring_the_server_for_react_native: Configuring the server for React Native
  installing_the_journey_module_in_react_native: Installing the Journey module in React Native
  configuring_a_journey_client_in_react_native: Configuring a Journey client in React Native
  starting_an_authentication_journey_in_react_native: Starting an authentication journey in React Native
  navigating_an_authentication_journey_in_react_native: Navigating an authentication journey in React Native
  managing_sessions_and_tokens_in_react_native: Managing sessions and tokens in React Native
---

# Getting Started with the Journey module for React Native

[icon: circle-check, set=far]PingOne Advanced Identity Cloud [icon: circle-check, set=far]PingAM [icon: react, set=fab]React Native

* [Prepare](01-configuring-the-server.html)

* [Install](02-installing-the-journey-module.html)

* [Configure](03-configuring-the-journey-module.html)

* [Start](04-starting-an-authentication-journey.html)

* [Navigate](05-navigating-an-authentication-journey.html)

***

The Orchestration SDK for React Native brings PingOne Advanced Identity Cloud and PingAM authentication journeys to React Native applications.

It wraps the Orchestration SDK for Android and the Orchestration SDK for iOS as React Native TurboModules, exposing a single TypeScript API that works across both platforms.

![diagram-react-native-sdk-architecture](../../_images/diagram-react-native-sdk-architecture-6fbfb525111388f9b0db8fbb846d8f3316c35632.svg)

One codebase targets Android and iOS by delegating to each platform's native SDK at runtime.

Optional packages for storage, logging, FIDO, and OIDC slot in independently so you include only what your app needs.

* One API, two platforms

  The Orchestration SDK for React Native wraps the Orchestration SDK for Android and the Orchestration SDK for iOS behind a single TypeScript interface using React Native TurboModules.

  You call the same `createJourneyClient()` and `useJourney()` APIs regardless of which platform is running, and the native bridge handles the rest.

  This means your team works entirely in TypeScript and inherits the security, reliability, and compliance guarantees of the native Orchestration SDKs without needing to maintain separate Android and iOS codebases.

* Native security, zero native code

  Authentication logic, including secure storage, device binding, biometrics, and attestation, all run inside the native SDK on each platform.

  The React Native layer orchestrates the flow but never handles sensitive material directly.

  Your app gets production-grade security by default, and the native SDKs stay upgradeable independently of your JavaScript layer.

* Journeys as a predictable state machine

  Every step of an authentication journey resolves to one of four node types: `ContinueNode` (more input required), `SuccessNode`, `FailureNode`, or `ErrorNode`.

  The four node types give you an exhaustive, unambiguous set of states — your app always knows where it is in the journey.

* Callbacks with intent

  Each callback in a `ContinueNode` carries an `executionMode` that tells your app what to do with it: collect input from the user (`manual`), display information without input (`output_only`), or hand off to a native integration before continuing (`integration_required`).

  You never need to parse raw callback JSON or write per-type branching logic from scratch — `executionMode` tells your app how to handle each callback: whether to collect input, display information, or hand off to a native integration.

* Bring your own UI

  The `useJourneyForm` hook normalizes all callbacks in a node into a flat list of typed fields — prompt, kind, validation state, default value, and options — without rendering anything itself.

  Your components always know exactly what to render, and the SDK handles field identity, submit planning, and value validation so they stay focused on presentation.

* Composable by default

  The SDK is a monorepo of independent packages: `rn-journey`, `rn-oidc`, `rn-storage`, `rn-logger`, `rn-fido`, and more.

  Each is a standalone NPM module and can be added, or not, without affecting the others.

  A minimal integration needs only `rn-core` and `rn-journey`. Everything else is opt-in, keeping your bundle lean and your dependency surface small.

In this section you will learn how to add the **Journey** module, configure it to communicate with the identity server, and write the code to initiate a login.

You'll handle each step of an authentication journey, from collecting user credentials to processing the final session token upon success or handling errors if the login fails.

## [Configuring the server for React Native](01-configuring-the-server.html)

Before you begin ensure you have set up your Advanced Identity Cloud tenant or PingAM server with the required configuration.

[**Complete prerequisites**[icon: chevrons-right, set=fas, size=xs]](01-configuring-the-server.html)

## [Installing the Journey module in React Native](02-installing-the-journey-module.html)

Learn how to install the **Journey** module into your React Native projects.

[**Install the module**[icon: chevrons-right, set=fas, size=xs]](02-installing-the-journey-module.html)

## [Configuring a Journey client in React Native](03-configuring-the-journey-module.html)

Explore the configuration options you have available for connecting the **Journey** module to your Advanced Identity Cloud tenant or PingAM server, and controlling how the module behaves.

[**Configure the module**[icon: chevrons-right, set=fas, size=xs]](03-configuring-the-journey-module.html)

## [Starting an authentication journey in React Native](04-starting-an-authentication-journey.html)

Every journey starts with the first step! Find out how to tell the **Journey** module to start an authentication journey.

[**Start the journey**[icon: chevrons-right, set=fas, size=xs]](04-starting-an-authentication-journey.html)

## [Navigating an authentication journey in React Native](05-navigating-an-authentication-journey.html)

An authentication journey consists of a number of authentication nodes, each is responsible for a particular task, such as obtaining credentials, or performing a risk assessment.

Learn how the **Journey** module navigates an authentication journey, and how to handle the callbacks the server sends in each step.

[**Navigate the journey**[icon: chevrons-right, set=fas, size=xs]](05-navigating-an-authentication-journey.html)

## [Managing sessions and tokens in React Native](06-handling-sessions.html)

Learn how to obtain a user object and session token, sign the user out, and manage OpenID Connect (OIDC) tokens, including retrieving, refreshing, and revoking them.

[**Managing sessions and tokens**[icon: chevrons-right, set=fas, size=xs]](06-handling-sessions.html)
