Skip to main content
import { useStytchB2BClient } from '@stytch/react/b2b';

export const GoogleDiscoveryLogin = () => {
  const stytch = useStytchB2BClient();

  const startDiscoveryOAuth = () => {
    stytch.oauth.google.discovery.start({
      discovery_redirect_url: 'https://example.com/authenticate',
    });
  };

  return <button onClick={startDiscoveryOAuth}>Sign in with Google</button>;
};
oauth.$provider.discovery.start() starts an OAuth discovery flow by redirecting the browser to one of Stytch’s OAuth Discovery Start endpoints. The method will also generate a PKCE code_verifier and store it in local storage on the device (See the PKCE OAuth guide for details). If your application is configured to use a custom subdomain with Stytch, it will be used automatically. Use one of the following methods to start an OAuth discovery flow:
  • oauth.google.discovery.start()
  • oauth.microsoft.discovery.start()
  • oauth.hubspot.discovery.start()
  • oauth.slack.discovery.start()
  • oauth.github.discovery.start()

Parameters

discovery_redirect_url
string
The URL Stytch redirects to after the OAuth flow is completed. This URL should be a route in your application which will run oauth.discovery.authenticate and finish the login.The URL must be configured as a Discovery URL in your Stytch Dashboard. If the field is not specified, the default Discovery URL will be used.
custom_scopes
string
A space-separated list of custom scopes that you’d like to include. Note that this list must be URL encoded (e.g. the spaces must be expressed as %20).
provider_params
object
An object containing parameters that you’d like to pass along to the OAuth provider. For example, some OAuth providers support a login_hint parameter that allows you to pre-populate the OAuth login flow with a suggested email address. We recommend consulting each OAuth provider’s documentation for a list of supported parameters. The keys in the provider_params object are the parameter names (like login_hint), and their values are the data that you’d like to pass along for each parameter (like example_hint@stytch.com).