Login with Twitter

To enable Twitter Auth for your project, you need to set up a Twitter OAuth application with elevated access and add the application credentials in the 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 Authentication icon in the left sidebar
  • Click on Providers under the Configuration section
  • Click on Twitter from the accordion list to expand and you'll find your Redirect URL, you can click Copy to copy it to the clipboard

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 on Providers under the Configuration section
  • Click on Twitter from the accordion list to expand and turn Twitter Enabled to ON
  • Enter your Twitter Client ID and Twitter 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:

async function signInWithTwitter() {
const { data, error } = await supabase.auth.signInWithOAuth({
provider: 'twitter',

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

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