Clerk Expo SDK
The Clerk Expo SDK gives you access to prebuilt components, React hooks, and helpers to make user authentication easier. Refer to the quickstart guide to get started.
Available resources
The Expo SDK supports three approaches to authentication, each with its own set of resources:
Components
Native components
Pre-built native components rendered with SwiftUI on iOS and Jetpack Compose on Android. These components require a development build.
- <AuthView /> - Renders a full authentication interface, supporting multiple sign-up and sign-in methods, multi-factor authentication (MFA), and password recovery flows.
- <UserButton /> - Displays the signed-in user's profile image.
- <UserProfileView /> - Renders a complete user profile interface with personal information, security settings, account switching, and sign-out options.
See the native components overview for more details.
Control components
These components work across all approaches:
- <Show> - Conditionally render content based on auth state
- <ClerkLoaded> - Render children after Clerk loads
- <ClerkLoading> - Render children while Clerk loads
Web components
All Clerk components are available from @clerk/expo/web for Expo web projects. See the component docs for more information.
Hooks
Native sign-in hooks
Hooks for native OAuth authentication without browser redirects. These hooks require a development build.
- useSignInWithApple() - Native Sign in with Apple (iOS only)
- useSignInWithGoogle() - Native Sign in with Google (iOS and Android)
- useSSO() - Browser-based SSO and OAuth flows
Expo-specific hooks
Hooks designed specifically for Expo environments. These provide additional authentication capabilities, such as biometric credential management and browser-based OAuth flows.
- useLocalCredentials() - Biometric credential management
- useOAuth() - Browser-based OAuth flows
React hooks
Because the Expo SDK is built on top of the Clerk React SDK, you can use the hooks that the React SDK provides. These hooks include access to the Clerk object, User object, Organization object, and a set of useful helper methods for signing in and signing up.
- useUser()
- useClerk()
- useAuth()
- useSignIn()
- useSignUp()
- useWaitlist()
- useSession()
- useSessionList()
- useOrganization()
- useOrganizationList()
- useOrganizationCreationDefaults()
- useReverification()
- useCheckout()
- usePaymentElement()
- usePaymentMethods()
- usePlans()
- useSubscription()
- usePaymentAttempts()
- useStatements()
- useAPIKeys()
Custom flows
Clerk provides prebuilt components for native applications and web applications. Use the components that correspond to your platform:
- For native apps, see the native components.
- For web apps, see the web components.
If the prebuilt components don't meet your needs, you can build custom flows using the Clerk API.
Configure passkeys
To configure passkeys for your Expo app, see the passkeys configuration guide.
Deploy your app
To learn how to deploy your Expo application, see the dedicated guide.
Feedback
Last updated on