Skip to main content
Skip to navigation

Authentication methods

Configure the identity providers that RevenueCat trusts for your Customers

AIAsk AIChatGPTClaude

This page lists the fields each authentication provider needs, and what RevenueCat does with them. To learn how authentication works before you configure it, see Authentication.

📘Private beta

Tell us about your use case to get early access and help us shape the feature.

Prerequisites

  • Be the project owner or an Administrator. No other role can view or manage authentication methods — see Collaboration for what each role can do.
  • Create an application with your identity provider, unless you're using Email OTP or Magic Link.
  • Read Authentication for how the identity provider, the method, and the access token fit together.

Choose a provider

RevenueCat supports seven providers. Pick the one that matches the identity provider your app already uses.

ProviderUse it forWhat you supply
OpenID ConnectAuth0, Okta, or any provider that publishes an OpenID Connect discovery documentAn issuer URL
Google IDGoogle sign-inA Google OAuth client ID
Apple IDSign in with AppleA Service ID for web, or a bundle ID for an app
Facebook LoginFacebook sign-inA Facebook App ID
FirebaseFirebase AuthenticationA Firebase project ID, web API key, and auth domain
Email OTPA one-time code that RevenueCat emails to the CustomerNothing — RevenueCat sends the email
Magic LinkA passwordless sign-in link that RevenueCat emails to the CustomerNothing — RevenueCat sends the email

Every provider but Email OTP and Magic Link works the same way: your app gets an ID token from the provider, and RevenueCat verifies it.

Add a method

  1. Open your project and select Auth.

  2. Select + Add method.

  3. Select your provider on the Select a provider to get started screen.

    The Select a provider screen in the Auth section, showing all seven authentication providers

  4. Complete the fields for your provider. Each provider has its own section below.

  5. Select Add method.

OpenID Connect

RevenueCat reads your provider's configuration from the Issuer URL and uses it to verify every ID token. You give RevenueCat one URL; it discovers the rest.

RevenueCat requests <Issuer URL>/.well-known/openid-configuration. That document must supply an issuer value and a jwks_uri value, both over HTTPS, and RevenueCat saves both with the method. At each login, RevenueCat loads the signing key named by the token's kid header, verifies the RS256 signature, then checks the iss claim against the saved issuer, the exp claim, and the age of the iat claim.

RevenueCat identifies the method by the token's iss claim, so two methods in one project can't share an issuer.

The Client Secret, Requested scopes, and Authorization parameters fields apply only to the interactive login that funnels use.

FieldRequiredWhat to enter
NameYesA label for the method. The name appears in the method list and in funnel steps.
Issuer URLYesThe HTTPS URL of your provider. Do not include the discovery path.
Client IDNoThe value that your provider puts in the aud claim. When you set it, RevenueCat requires a match.
Client SecretNoNeeded only for the interactive login.
Requested scopesNoExtra OAuth scopes for the interactive login. RevenueCat always includes openid.
App user ID claimNoThe claim that RevenueCat maps to the App User ID. Leave it empty to use sub.
Authorization parametersNoStatic query parameters for the authorization URL. Leave it empty unless your provider requires one.
ID token iat freshness (seconds)NoUnder Advanced settings. How old an ID token can be when your app sends it.
⚠️The App user ID claim applies only at first login

RevenueCat maps this claim when it creates the Customer. Existing Customers keep the App User ID that they already have.

Example issuer URLs

Any other provider works the same way, as long as it publishes an OpenID Connect discovery document.

Google ID

FieldRequiredWhat to enter
NameYesA label for the method.
Client IDYesThe Google OAuth client ID for your application.
ID token iat freshness (seconds)NoUnder Advanced settings. How old an ID token can be when your app sends it.

RevenueCat checks the aud claim of the Google ID token against this client ID. To find the value, see Get your Google API client ID.

Apple ID

FieldRequiredWhat to enter
NameYesA label for the method.
Bundle IDYesYour Apple Service ID or bundle ID.
ID token iat freshness (seconds)NoUnder Advanced settings. How old an ID token can be when your app sends it.

RevenueCat checks the aud claim of the Apple ID token against this value. Use the Service ID for web and the bundle ID for an app. To create a Service ID, see Sign in with Apple.

Facebook Login

FieldRequiredWhat to enter
NameYesA label for the method.
Facebook App IDYesThe app ID of your Facebook application.
App SecretNoNeeded only for classic Facebook Login.
ID token iat freshness (seconds)NoUnder Advanced settings. How old an ID token can be when your app sends it.

RevenueCat checks the aud claim of the Facebook ID token against the app ID. To find both values, see Facebook Login.

Firebase

FieldRequiredWhat to enter
NameYesA label for the method.
Project IDYesThe Firebase project ID, from Project settings → General in the Firebase console.
Web API keyYesThe web API key that the Firebase JS SDK uses.
Auth domainYesThe Firebase auth domain, such as my-project.firebaseapp.com.

RevenueCat checks the aud claim of the Firebase ID token against the project ID. To find these values, see Firebase project configuration.

⚠️Funnels need an authorized domain

Add the domain of your funnel to the authorized domains of your Firebase project. Firebase blocks sign-in from a domain that it does not list.

Email OTP

RevenueCat sends the email, so there's no external application to configure. The Customer receives a one-time code by email.

FieldRequiredWhat to enter
NameYesA label for the method.
Sender nameNoThe display name of the sender. It defaults to the name of your app, not the project.
Reply-to emailNoThe address that receives replies.
Code Expiration (minutes)NoHow long the code stays valid. It defaults to 360 minutes, or 6 hours.

RevenueCat always sends this email from a verified RevenueCat address.

RevenueCat sends the email, so there's no external application to configure. The Customer receives a passwordless sign-in link by email.

FieldRequiredWhat to enter
NameYesA label for the method.
Sender nameNoThe display name of the sender. It defaults to the name of your app, not the project.
Reply-to emailNoThe address that receives replies.
Link Expiration (minutes)NoHow long the link stays valid. It defaults to 1440 minutes, or 1 day.

RevenueCat always sends this email from a verified RevenueCat address.

Next steps

Was this page helpful?