Magic links, social sign-in, multifactor, and more - added to your app in minutes.
React Native brings the cross-platform flexibility and support of universal React to the native development of mobile apps.
Clerk provides React Native applications with hooks and fully customizable components that allow users to include complete sign-in flows, user management, and authorization in minutes.
Clerk Expo is a wrapper around Clerk React that works for iOS and Android. Clerk Expo provides hooks and customizable components which act as helpers for implementing a seamless authentication experience.
Use Clerk with Expo to authenticate users in your React Native application. Build with authentication from the ground up, or integrate Clerk into your app in minutes.
Our easy to follow documentation will get your application working with user management and authentication quickly. Save development time with Clerk's comprehensive suite of tools.
Check out Clerk and React in action. Our collection of examples has different types of authentication form flows you might need for your application. All built using Clerk!
Get started with Clerk and React Native! We created this simple Clerk + React Native starter repository so that you can begin building your application immediately.
It only takes one line of code.
The useSignIn() hook gives you access to the SignIn object inside your components. You can use the methods of the SignIn object to create your own custom sign in flow, as an alternative to using Clerk's pre-built <SignIn/> component.
import { useClerk, useSignIn } from "@clerk/clerk-expo"...const { setSession } = useClerk();const signIn = useSignIn();...const onSignInPress = async () => {try {const completeSignIn = await signIn.create({identifier: emailAddress,password,});await setSession(completeSignIn.createdSessionId);...
The useUser() hook accesses the active User object. It can be used to update the user or display information about the user's profile, like their name or email address. The hook provides a shortcut for retrieving the Clerk.session.user property.
import { useClerk, useUser } from '@clerk/clerk-expo';...const { signOut } = useClerk();const { firstName } = useUser();return (<View style={styles.container}><Avatar.Image size={100} source={avatar} /><Text style={styles.title}>Hello, {firstName}!</Text><Buttonstyle={styles.link}mode="text"onPress={onSignOutPress}>Sign out</Button></View>);...
The features your users expect.
Magic links
Session management
Multifactor authentication
Social sign-in
Multi-session management
New device notifications
Password leak protection
Advanced security
Start completely free for up to 5,000 monthly active users and up to 10 monthly active orgs. No credit card required.
Learn more about our transparent per-user costs to estimate how much your company could save by implementing Clerk.
The latest news and updates from Clerk, sent to your inbox.