Login with Twitch

To enable Twitch Auth for your project, you need to set up a Twitch Application and add the Application OAuth credentials to your Supabase Dashboard.


Setting up Twitch logins for your application consists of 3 parts:

Access your Twitch Developer account#

  • Go to dev.twitch.tv.
  • Click on Log in with Twitch at the top right to log in.
  • If you have not already enabled 2-Factor Authentication for your Twitch Account, you will need to do that at Twitch Security Settings before you can continue.

Twitch Developer Page

Twitch Developer Console

Find your callback URL#

In the next step you require a callback URL, which looks like this:


  • Go to your Supabase Project Dashboard.
  • Click on the Settings icon at the bottom of the left sidebar.
  • Click on API in the list.
  • Under Config / URL you'll find your API URL, you can click Copy to copy it to the clipboard.
  • Now just add /auth/v1/callback to the end of that to get your full OAuth Redirect URI.

Create a Twitch Application#

Twitch Developer Console

  • Click on + Register Your Application at the top right.

Register Application

  • Enter the name of your application.
  • Type or paste your OAuth Redirect URL (the callback URL from the previous step.)
  • Select a category for your app.
  • Check the Captcha box and click Create.

Retrieve your Twitch OAuth Client ID and Client Secret#

  • Click Manage at the right of your application entry in the list.

Twitch Applications List

  • Copy your Client ID.
  • Click New Secret to create a new Client Secret.
  • Copy your Client Secret.

Get Client ID and Secret

Add your Twitch credentials into your Supabase Project#

  • Go to your Supabase Project Dashboard
  • In the left sidebar, click the Authentication icon (near the top)
  • Click Settings from the list to go to the Authentication Settings page
  • Enter the final (hosted) URL of your app under Site URL (this is important)
  • Under External OAuth Providers turn Twitch Enabled to ON
  • Enter your client_id and client_secret saved in the previous step
  • Click Save

Add login code to your client app#

When your user signs in, call signInWithOAuth() with twitch as the provider:

1async function signInWithTwitch() {
2  const { data, error } = await supabase.auth.signInWithOAuth({
3    provider: 'twitch',
4  })

When your user signs out, call signOut() to remove them from the browser session and any objects from localStorage:

1async function signout() {
2  const { error } = await supabase.auth.signOut()