Home
> Local Supabase Auth Setup

</> About Firebase

</> Feature Wish List

📁 Authentication

</> User Document

📁 Cloud Firestore

</> Collections

</> Query Patterns

</> Data Converters

</> Timestamps

</> Reference Type

📁 Emulator Suite

</> Local Development

📁 Framework Setup

</> Qwik City

</> SvelteKit

</> NextJS

</> Nuxt

</> Analog

</> Remix

</> Angular SSR

</> Firebase Admin

👷 Under Construction

📧 Subscribe to our Newsletter for course and post updates!

Local Supabase Auth Setup

4 min read

Jonathan Gamble

jdgamble555 on Saturday, February 18, 2023 (last modified on Sunday, December 17, 2023)

There doesn't seem to be a lot of clear info online for setting up Authentication on localhost, so I thought I would write one. I'm currently trying to develop my next project local-first, which is good practice. Here are few things I'm learning along the way.

ENV Files#

Add your Client ID and Secret to your .env file, as you don't want the info readily available on GitHub.

	GOOGLE_CLIENT_ID=...
GOOGLE_CLIENT_SECRET=...

TOML File#

Edit your config.toml file to add your auth inside env() functions like so:

	[auth.external.google]
enabled = true
client_id = "env(GOOGLE_CLIENT_ID)"
secret = "env(GOOGLE_CLIENT_SECRET)"
# Overrides the default auth redirectUrl.
redirect_uri = "http://localhost:54321/auth/v1/callback"
# Overrides the default auth provider URL. Used to support self-hosted gitlab, single-tenant Azure,
# or any other third-party OIDC providers.
url = ""

Package.json#

Add a stop and start command like sb:start and sb:stop to your package.json for easy use.

	"scripts": {
    "dev": "vite dev",
    "build": "vite build",
    "preview": "vite preview",
    "test": "playwright test",
    "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
    "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
    "test:unit": "vitest",
    "lint": "prettier --plugin-search-dir . --check . && eslint .",
    "format": "prettier --plugin-search-dir . --write .",
    "sb:stop": "npx env-cmd npx supabase stop",
    "sb:start": "npx env-cmd npx supabase start"
},

If you use a Linux system or Mac, you should be able to use something like:

	source ./.env && npx supabase start

This depends on where your .env file is located.

However, if you use Windows, you will need to install env-cmd first:

	npm i -D env-cmd

then use this command instead:

	npx env-cmd npx supabase start

You will need load the .env file for both stop and start. Now you can use:

	npm run sb:stop
npm run sb:start

Callback#

Make sure to use:

	http://localhost:54321/auth/v1/callback

as your callback URL. This doesn't seem to be clear anywhere. For Google, i.e., you need to add this to your "Authorized redirect URIs" after you follow the Google Setup.

Now you can Login with Google using only a Localhost setup.

J


Related Posts

© 2024 Code.Build