Overview

The Bolt Android SDK provides a built-in SSO flow that lets users log in with their Bolt account using OAuth 2.0, and optionally PKCE. After login, you receive an authorization code and state that your backend exchanges for an access token.
If you don’t have a backend application and need to exchange the authorization code directly from your mobile app, enable PKCE mode and send the authorization code, state, and code verifier to the Bolt token exchange endpoint.

Starting the Login Flow

Register a launcher and implement BoltLoginDelegate:

Launching from an Activity

If you are launching from an Activity instead of a Fragment:

How It Works

  1. startLogin() opens a WebView with the Bolt-hosted login page. Your app does not pass an email: the user enters it directly on the page.
  2. (PKCE flow only) The SDK generates a PKCE code verifier and code challenge automatically.
  3. The user enters their Bolt account email. Bolt sends a one-time passcode (OTP) via email or SMS: the user picks their preferred delivery method and enters the code.
  4. On success, the hosted page redirects to boltoauth://redirect with an authorization code.
  5. The SDK intercepts this redirect inside the WebView: no AndroidManifest.xml changes or intent filters are required.
  6. onLoginSuccess(authCode, codeVerifier, state) is called.

Backend Token Exchange

When onLoginSuccess fires, send authCode to your backend immediately. Your backend exchanges it for an access token:
Do not write authCode to persistent storage (SharedPreferences, database, or disk). Forward it to your backend directly from onLoginSuccess and let it go out of scope.

Logout

To log the user out of their Bolt session:
This clears the WebView cookies used by the Bolt login page.

SFCC Integration

Some merchants use Salesforce Commerce Cloud (SFCC) as their e-commerce platform and have configured Bolt as an OAuth identity provider within SFCC. In this setup, the token exchange does not go directly to Bolt’s /v1/oauth/token endpoint. Instead, the Bolt authorization code and state are forwarded to SFCC, which handles the token exchange server-to-server on your behalf.
In the SFCC flow, you should not use PKCE as the token exchange is made from your backend.

Key Differences from Standard SSO

SFCC Endpoint Reference