Login with Twitter

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


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

Access your Twitter Developer account#

Twitter Developer Portal.

Find your callback URL#

The next step requires 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 Twitter OAuth app#

  • Click + Create Project.
    • Enter your project name, click Next.
    • Select your use case, click Next.
    • Enter a description for your project, click Next.
    • Enter a name for your app, click Complete.
    • Copy and save your API Key (this is your client_id).
    • Copy and save your API Secret Key (this is your client_secret).
  • At the bottom, under Next, setup your App click the link enable 3rd party authentication.
  • Under App Settings, click on the gear icon next to your app name to go to App Settings.
  • At the bottom, next to Authentication settings, click Edit.
  • Turn Enable 3-legged OAuth ON.
  • Turn Request email address from users ON.
  • Enter your Callback URL.
  • Enter your Website URL.
  • Enter your Terms of service URL.
  • Enter your Privacy policy URL.
  • Click Save.

Enter your Twitter 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 Twitter Enabled to ON.
  • Enter your API Key (client_id) and API Secret Key (client_secret) saved in the previous step.
  • Click Save.

Add login code to your client app#

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

1async function signInWithTwitter() {
2  const { data, error } = await supabase.auth.signInWithOAuth({
3    provider: 'twitter',
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()