Short answer
Enable the provider on its page in the hosted project’s dashboard, with the client ID and secret from the provider. For local development, Supabase configures the provider in supabase/config.toml instead; we also restart the local stack after editing it. For email or phone sign-up, check that those providers are on as well.
Where the provider is off, and the fix
01
The provider is off in the hosted project
“OAuth provider is disabled for use. Check your server's configuration.” Supabase, Auth error codes
Each OAuth provider is switched on per project, with the client ID and secret you create at the provider. Enable it on the provider page in the dashboard for the project your app’s URL points at, since staging and production are often separate projects.
02
For local development, configure it in config.toml
“Configure the provider in supabase/config.toml” Supabase, Login with Google
For local development, Supabase’s guide configures the provider in supabase/config.toml. First add the secret as an environment variable, SUPABASE_AUTH_EXTERNAL_GOOGLE_CLIENT_SECRET="<client-secret>", then reference it as in Supabase’s Google example.
[auth.external.google] enabled = true client_id = "<client-id>" secret = "env(SUPABASE_AUTH_EXTERNAL_GOOGLE_CLIENT_SECRET)" skip_nonce_check = false03
Email or phone sign-up is switched off
“Signups are disabled for email and password.” Supabase, Auth error codes
Email and phone have their own codes, email_provider_disabled and phone_provider_disabled. They appear when those sign-up methods are turned off in the project’s Auth settings.
Checked against the vendor’s docs on : Supabase docs: Auth error codes; Supabase docs: Login with Google.
Rather hand it over?
Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.
- from $450App Fix TicketOne reproducible bug in an existing mobile or web app, diagnosed and fixed.See scope and start
- from $450AI-Built App RescueA Lovable, Bolt or Cursor app checked end to end in 3 days, then its worst problems fixed at a fixed price.No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way.See scope and start
Related: Google OAuth redirect_uri_mismatch · Firebase auth/operation-not-allowed · Supabase public storage bucket · Supabase Realtime not receiving changes