Skip to content

Repository files navigation

Frontegg React Native SDK

Frontegg React Native SDK

Authentication and user management for your React Native app — one package, both platforms.

npm version iOS 14+ Android API 26+ React Native 0.63+ Licence


Frontegg is a self-served user management platform for modern SaaS applications. Drop this SDK in and your app gets a production login screen, a live session, and a user object — without you writing an auth flow or touching a token.

Hosted or embedded login Frontegg's login box, or your own UI on top of the API
Every method your tenants need Email, social, SSO, magic link, passkeys, MFA and step-up
Sessions that stay alive Tokens refresh in the background, on both platforms
Built for multi-tenant SaaS Multi-tenancy, RBAC, entitlements and multi-region support

Install

npm install @frontegg/react-native

Then the peer dependencies:

# Expo
npx expo install @react-native-async-storage/async-storage @react-navigation/native @react-navigation/native-stack react-native-screens react-native-safe-area-context

# Bare React Native
npm install @react-native-async-storage/async-storage @react-navigation/native @react-navigation/native-stack react-native-screens react-native-safe-area-context

Requirements: React Native 0.63+ · iOS deployment target 14+ · Android API 26+ with JDK 17 and AGP 7.4+. Passkeys additionally need iOS 15+ and Chrome Custom Tabs on Android.

Quick start

1 · Allow the redirect URLs. In the Frontegg Portal, under [ENVIRONMENT] → Authentication → Login method, turn hosted login on and add the shared URL plus one per platform:

{{FRONTEGG_BASE_URL}}/oauth/authorize

# iOS
{{IOS_BUNDLE_IDENTIFIER}}://{{FRONTEGG_BASE_URL}}/ios/oauth/callback

# Android
{{ANDROID_PACKAGE_NAME}}://{{FRONTEGG_BASE_URL}}/android/oauth/callback
https://{{FRONTEGG_BASE_URL}}/oauth/account/redirect/android/{{ANDROID_PACKAGE_NAME}}

2 · Configure the native projects. iOS reads a Frontegg.plist; Android takes its domain and client ID from build.gradle. Both are covered step by step in the Setup guide — this is the one part that is not JavaScript, and it differs per platform.

3 · Wrap your app.

import { NavigationContainer } from '@react-navigation/native';
import { FronteggWrapper } from '@frontegg/react-native';

export default function App() {
  return (
    <FronteggWrapper>
      <NavigationContainer>
        {/* your navigator */}
      </NavigationContainer>
    </FronteggWrapper>
  );
}

4 · Read the authentication state anywhere below it.

import { View, Button } from 'react-native';
import { useAuth, login } from '@frontegg/react-native';

export function MyScreen() {
  const { isAuthenticated } = useAuth();

  return (
    <View>
      {isAuthenticated ? <Profile /> : <Button title="Login" onPress={login} />}
    </View>
  );
}

Documentation

Guide What it covers
Get Started Requirements, environment prep, installation
Setup iOS and Android native configuration
Usage Examples Hooks, login flows, error handling
API Reference Every method, hook and type the SDK exports
Advanced Topics Complex integration scenarios

Full platform documentation lives at developers.frontegg.com.

Example app

A complete integration you can run: example.

Support

No Frontegg account yet? Sign up free.

Questions, or something broken? Reach the team at support.frontegg.com or open an issue.

Licensed under the LICENSE in this repository.

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages