Social Login (OAuth)

Note

Descope includes preconfigured OAuth applications for testing purposes, but these are limited to 100 total logins per month across all providers. Once you reach this limit, OAuth login will be disabled until the next month.

Therefore, for production use we recommend setting up your own OAuth accounts with custom branding and settings.

Social login (OAuth) allows users to sign in using their existing accounts from popular platforms such as Google, Facebook, or GitHub. Instead of creating new credentials, users simply click a provider button and authenticate through OAuth.

What is an OAuth Provider and Application?

An OAuth provider is a service that allows you to authenticate users using their existing accounts from popular platforms such as Google, Facebook, or GitHub.

An OAuth application is your app's registration directly with an OAuth provider like Google or Facebook. It includes details such as your app name, website URL, and branding assets.

Descope comes with built-in OAuth applications for all major providers. This means you can begin testing social login right away while Descope manages the OAuth login process in the background. When you're ready to customize or move to production, simply create your own OAuth applications with each provider and update their configurations in the Descope Console.

For guides on how to set up your own OAuth applications with Descope, see the Configuring OAuth Providers guide.

Social Login (OAuth) with Flows

This guide will walk you through integrating OAuth-based social login into your Descope Flows.

Flow Actions

When using OAuth Login, you have the standard actions for most authentication methods available.

  • Sign Up / OAuth - Signs the user up, but will not work if user already exists
  • Sign Up or In / OAuth - Signs the user in, and if user doesn't exist it will automatically sign them up
  • Sign In / OAuth - Signs the user in, but if the user doesn't exist it will fail.
  • Update User / OAuth - Will merge OAuth identity to an existing user

This is an example of using the Sign Up or In action in a flow:

sign-up-or-in-flow-action

How to Use OAuth Actions

To learn more about Actions in general, you can refer to our guide on them.

There are 7 modifiable parameters for the OAuth actions:

Step name

The name of the flow action to use.

Redirect URL

URL to redirect to after successful authentication with the OAuth provider.

Note

This will override any previously set redirect URLs for the OAuth provider.

Prompt

All OAuth actions can include a Prompt parameter, that can alter the behavior of the OAuth provider when redirecting to it.

The different prompt values can be:

  • Login - The login prompt forces the user to re-authenticate, regardless of whether they are already logged in or have an active session with the OAuth provider.
  • Consent - The consent prompt forces the OAuth provider to re-display the consent screen, asking the user to agree to the requested permissions (scopes) again, even if they have already granted consent.
  • Select Account - The select_account prompt forces the user to select which account they want to use if they have multiple accounts logged in with the OAuth provider.
  • None - The none prompt forces the authentication to complete without showing any UI to the user.

Use a default provider

Override to specify a specific OAuth provider to authenticate with. This is useful if you want to use generic buttons to login to a specific OAuth provider, like Google or Facebook.

Note

This is not needed if using the pre-generated OAuth provider buttons in the Screen editor.

Open in Popup

OAuth login will open in a popup.

Login Hint

login_hint parameter to pass to the OAuth provider. This can be used to pre-fill the username/email field on the OAuth provider's login page.

Force Non-Native OAuth

Force web-based OAuth login instead of native OAuth login on mobile.

Flow Screens

When using OAuth, you can use either the Default Provider buttons or normal buttons and connect them to the various OAuth actions mentioned above.

Error Handling

Error handling is handled like any other action. You can refer to our Flow Error Handling guide for more details.

Was this helpful?

On this page