Clerk logo

Simple and Powerful Auth

Built for React Native

Magic links, social sign-in, multifactor, and more - added to your app in minutes.

Mobile Development

React Native brings the cross-platform flexibility and support of universal React to the native development of mobile apps.

Customizable components

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

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.


Get Started

Complete user management

Clerk is the ideal solution to React Native / Expo authentication. Integrate complete user management into your application quickly, without sacrificing security.


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

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.

Radically simple auth

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,
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}!
Sign out

Immensely powerful

The features your users expect.

Magic links
Make passwords obsolete by sending your users magic links
Session management
Revocable and stateless, the best of both worlds.
Multifactor authentication
Secure your users with multiple steps during sign in.
Social sign-in
Let your users sign in with Google, Facebook, and more
Multi-session management
Allow your users to sign in to multiple accounts at once.
New device notifications
Proactively notify users when a new device signs in. Let's your users protect themself.
Password leak protection
Proactively protects your users against passwords that appear in leaks.
Advanced security
Clerk detects and blocks phishy sign ins out of the box.
Clerk's logo

Start now,
no strings attached

Start completely free for up to 10,000 monthly active users and up to 100 monthly active orgs. No credit card required.

Start Building

Pricing built for
businesses of all sizes.

Learn more about our transparent per-user costs to estimate how much your company could save by implementing Clerk.

View pricing
Clerk's logo


The latest news and updates from Clerk, sent to your inbox.

Clerk logo

Clerk - Complete User Management


© 2023 Clerk Inc.


© 2023 Clerk Inc.