BluxBlux

Social Login

Enable and configure every social login provider available for your Blux app.

Blux supports Google, Farcaster, TikTok, LinkedIn, Twitch, Kick, Spotify, Instagram, Apple, Discord, GitHub, Meta, Telegram, Microsoft, GitLab, X, and Steam. Social providers are enabled separately for each app from its Socials page in the Blux Dashboard.

Choose a provider in the dashboard

Open your project, select Socials, and find the provider you want. The badge on its card tells you what is required:

  • Ready to enable or Can be enabled without credentials — switch it on. No credential form is required.
  • Add credentials to enable — open the provider, register the displayed redirect URI in its developer console, then enter its client ID and client secret.
  • Requires your own credentials — this provider cannot use shared Blux credentials. Complete its provider-specific form before enabling it.

Steam and Farcaster never require client credentials. Apple and Telegram always require credentials owned by your project. Other OAuth providers are one-click when shared Blux credentials are available; otherwise the dashboard asks for your own. This can vary by provider and deployment, so the dashboard badge is the source of truth.

ProviderloginMethods keyDashboard setup
GooglegoogleOne-click when shared credentials are available; otherwise Client ID + Client Secret
FarcasterfarcasterOne-click; no credentials
TikToktiktokClient Key + Client Secret unless shared credentials are available
LinkedInlinkedinClient ID + Client Secret unless shared credentials are available
TwitchtwitchClient ID + Client Secret unless shared credentials are available
KickkickClient ID + Client Secret unless shared credentials are available
SpotifyspotifyClient ID + Client Secret unless shared credentials are available
InstagraminstagramClient ID + Client Secret unless shared credentials are available
AppleappleYour Client ID, Team ID, Key ID, and .p8 signing key
DiscorddiscordClient ID + Client Secret unless shared credentials are available
GitHubgithubClient ID + Client Secret unless shared credentials are available
MetametaApp ID + App Secret unless shared credentials are available
TelegramtelegramYour Bot name + Bot token; optional Mini App login
MicrosoftmicrosoftClient ID + Client Secret unless shared credentials are available
GitLabgitlabClient ID + Client Secret unless shared credentials are available
X (Twitter)twitterClient ID + Client Secret unless shared credentials are available
SteamsteamOne-click; no credentials

Using your own OAuth credentials

Open the provider card and follow these steps:

  1. Create an OAuth application in the provider's developer console.
  2. Copy the Redirect URI shown by the Blux dashboard and register it as an authorized callback URL with the provider. Use it exactly as shown.
  3. Paste the client ID and client secret into Blux, then save. Saving the credentials also enables the provider.

Using your own credentials gives the provider's consent screen your application's identity. A provider backed by shared credentials can be enabled immediately, but you can still add your own credentials when you want a branded consent screen.

Client secrets, bot tokens, and Apple signing keys are write-only and stored encrypted. They are never returned to the dashboard after saving and are never sent to @bluxcc/core or @bluxcc/react in the browser. Leave a saved secret field empty when updating other settings to keep its current value.

Apple

Apple requires a Client ID, Team ID, Key ID, and the complete .p8 Signing Key, including its header and footer lines. Apple cannot use shared Blux credentials.

Telegram

Create a bot with BotFather, set its allowed domain to your application's domain, and enter the bot name and bot token in the dashboard. You can also enable login from Telegram Mini Apps.

Telegram uses its on-page Login Widget rather than the usual OAuth popup. A headless integration can pass the widget payload to loginOAuth("telegram", { telegramUser }); a configured Mini App can use its Web App init data automatically.

Add the provider to your app

Dashboard configuration controls whether your appId may use a provider. Your SDK config controls whether your application offers it. You need both:

createConfig({
  appId: "your-app-id",
  appName: "My App",
  networks: [core.networks.mainnet],
  loginMethods: ["google", "farcaster", "github", "email"],
});

A provider works only when it is enabled in the dashboard for your appId and present in loginMethods. If either condition is missing, the built-in modal hides it and a headless loginOAuth call rejects.

The first enabled social in loginMethods is featured in Blux's built-in login screen; the remaining providers appear under Other socials. With a white-label UI, you decide how every button is arranged.

Start social login

Use the built-in login modal or call the headless social method from your own button:

// Built-in Blux login UI
await blux.login();

// Your own button and UI
await blux.loginOAuth("google");

In React, use the matching hook:

const { loginOAuth, isPending, error } = useLoginOAuth();

<button onClick={() => loginOAuth("google")} disabled={isPending}>
  Continue with Google
</button>

OAuth and passkey popups must be started directly from a user click. See JavaScript white-label login or React white-label login for complete examples.

On this page