This sample app demonstrates advanced authentication flows using the Clerk Android SDK. It showcases how to implement custom authentication patterns including multi-factor authentication, OAuth integration, password reset flows, and user profile management.
-
Create a Clerk Application
- Sign up for a Clerk account at dashboard.clerk.com
- Create a new application in your Clerk dashboard
- Choose "Android" as your platform
-
Configure Authentication Methods
Email/Password Authentication:
- Go to User & Authentication → Email, Phone, Username
- Enable Email authentication
- Enable Password authentication
- Configure Sign-up and Sign-in options
Multi-Factor Authentication:
- Navigate to User & Authentication → Multi-factor
- Enable SMS and/or TOTP (Time-based One-Time Password)
- Configure backup codes if desired
OAuth Providers:
- Go to User & Authentication → Social Connections
- Enable desired OAuth providers (Google, GitHub, etc.)
- Configure OAuth app credentials for each provider
-
Configure Additional Settings
- User & Authentication → Email, Phone, Username: Enable email and phone number as identifiers
- User & Authentication → Personal Information: Configure which fields are required/optional
-
Get Your Publishable Key
- Navigate to Developers → API Keys
- Copy your Publishable Key (starts with
pk_test_orpk_live_)
-
Clone the repository (if you haven't already):
git clone https://github.com/clerk/clerk-android.git cd clerk-android -
Add your Clerk Publishable Key:
Open the
gradle.propertiesfile in the project root and add your publishable key:CUSTOM_FLOWS_CLERK_PUBLISHABLE_KEY=pk_test_your_publishable_key_here⚠️ Important: Replacepk_test_your_publishable_key_herewith your actual publishable key from the Clerk dashboard.
-
Using Android Studio:
- Open the project in Android Studio
- Select the
custom-flowsrun configuration from the dropdown - Click the Run button
-
Using Gradle command line:
./gradlew :samples:custom-flows:installDebug
-
Launch the app on your device or emulator