• Blog
  • Documentation
  • Courses
  • Changelog
  • AI Starters
  • UI Kit
  • FAQ
  • Supamode
    New
  • Pricing

Launch your next SaaS in record time with Makerkit, a React SaaS Boilerplate for Next.js and Supabase.

Makerkit is a product of Makerkit Pte Ltd (registered in the Republic of Singapore)Company Registration No: 202407149CFor support or inquiries, please contact us

About
  • FAQ
  • Contact
  • Verify your Discord
  • Consultation
  • Open Source
  • Become an Affiliate
Product
  • Documentation
  • Blog
  • Changelog
  • UI Blocks
  • Figma UI Kit
  • AI SaaS Starters
License
  • Activate License
  • Upgrade License
  • Invite Member
Legal
  • Terms of License
  • Global Configuration
    • Environment Variables
    • Feature Flags
  • Server Actions
    • Sending CSRF Token to Actions
    • Server Actions Error Handling
  • The Makerkit SDK
    • User SDK
    • Organization SDK
    • Organization Subscription SDK
    • Data Loader SDK
  • Architecture and Folder Structure
    • Structure your Application
    • Data Model
    • Adding API Routes
    • Change Authentication strategy
    • Fetching the signed in User
    • Reading Records from Postgres
    • Creating a Record
    • Seeding Local Data
    • Introduction
    • Configuring Plans
    • Project Configuration
    • Updating the Navigation menu
    • Adding a new translation string
    • Supabase is not starting
    • Calling API Routes from the client
    • Adding Pages
    • Updating the Sidebar menu
    • Setup oAuth
    • Fetching the selected Organization
    • Resetting the local DB
    • Running the Stripe Webhook locally
    • Branding
    • Setting a Default Language
    • Supabase is not stopping
    • Dark Theme
    • Theming
    • API Routes vs Server Actions
    • Generating Database Types
    • Updating the Logo
    • Adding a new language in the Next.js Supabase SaaS Kit
    • Tables/Functions not found
    • Updating the Fonts
    • Adding Pages
    • Adding a new translation file
    • Contentlayer gets stuck
    • Guarding Pages
    • Using Lemon Squeezy instead of Stripe
    • Updating the Favicons
    • Using the Language Switcher
    • Dynamic server usage error
    • Environment variables
    • Detect current Locale
    • 403 error with API/Actions
    • Setting up Emails
This documentation is for a legacy version of Next.js and Supabase. For the latest version, please visit the Next.js and Supabase V2 documentation

How to setup oAuth in the Next.js Supabase Starter

Learn how to setup oAuth in the Next.js Supabase Starter

For oAuth - you can enable multiple providers. For example, you can enable Google and Facebook authentication at the same time by adding the providers to the auth.providers.oAuth array in the configuration file at src/configuration.ts.

You must configure the oAuth providers in three places:

  1. Supabase - you need to setup an oAuth application in Supabase.
  2. Provider - you need to setup an oAuth application in the provider (for example, Google Auth)
  3. Makerkit Configuration - you need to add the provider to the auth.providers.oAuth array in the configuration file at src/configuration.ts.

Below is an example of how to enable Google and Facebook authentication:

src/configuration.ts
providers: {
emailPassword: false,
phoneNumber: false,
emailLink: false,
oAuth: ['google', 'facebook'] as Provider[]
},

The interface Provider is very important as it tells Makerkit which OAuth provider to use. You can find the list of supported OAuth providers here.

By default, Makerkit provides logos for the most famous oAuth providers, but not all of them. To add a logo for an oAuth provider, please update the src/core/ui/AuthProviderLogo.tsx file.

You will provide a string or a React node for the logo by specifying the provider name as the key of the object.

src/core/ui/AuthProviderLogo.tsx
function getOAuthProviderLogos(): Record<string, string | React.ReactNode> {
return {
password: <AtSymbolIcon className={'h-[22px] w-[22px]'} />,
phone: <DevicePhoneMobileIcon className={'h-[22px] w-[22px]'} />,
google: '/assets/images/google.webp',
facebook: '/assets/images/facebook.webp',
twitter: '/assets/images/twitter.webp',
github: '/assets/images/github.webp',
microsoft: '/assets/images/microsoft.webp',
apple: '/assets/images/apple.webp',
};
}

How to Setup an oAuth Provider

Most of the setup is done in two places:

  1. Supabase - you need to setup an oAuth application in Supabase.
  2. Provider - you need to setup an oAuth application in the provider (for example, Google Auth)

To know more about how to setup an oAuth provider, please read the Supabase documentation.