auth-js
An isomorphic JavaScript client library for the Supabase Auth API.
Docs
Quick start
Install
npm install --save @supabase/auth-js
Usage
import { AuthClient } from '@supabase/auth-js'
const GOTRUE_URL = 'http://localhost:9999'
const auth = new AuthClient({ url: GOTRUE_URL })
Custom fetch
implementation
auth-js
uses the cross-fetch
library to make HTTP requests, but an alternative fetch
implementation can be provided as an option. This is most useful in environments where cross-fetch
is not compatible, for instance Cloudflare Workers:
import { AuthClient } from '@supabase/auth-js'
const AUTH_URL = 'http://localhost:9999'
const auth = new AuthClient({ url: AUTH_URL, fetch: fetch })
Development
This package is part of the Supabase JavaScript monorepo. To work on this package:
Building
npx nx build auth-js
npx nx build auth-js --watch
npx nx build:main auth-js
npx nx build:module auth-js
npx nx clean auth-js
npx nx format auth-js
npx nx lint auth-js
npx nx typecheck auth-js
npx nx docs auth-js
Build Outputs
- CommonJS (
dist/main/
) - For Node.js environments
- ES Modules (
dist/module/
) - For modern bundlers (Webpack, Vite, Rollup)
- TypeScript definitions (
dist/module/index.d.ts
) - Type definitions for TypeScript projects
Testing
Docker Required! The auth-js tests require a local Supabase Auth server (GoTrue) running in Docker.
npx nx test:auth auth-js
This command automatically:
- Stops any existing test containers
- Starts a Supabase Auth server (GoTrue) and PostgreSQL database in Docker
- Waits for services to be ready (30 seconds)
- Runs the test suite
- Cleans up Docker containers after tests complete
Individual Test Commands
npx nx test:suite auth-js
npx nx test:infra auth-js
npx nx test:clean auth-js
Development Testing
For actively developing and debugging tests:
npx nx test:infra auth-js
npx nx test:suite auth-js
npx nx test:clean auth-js
Test Infrastructure
The Docker setup includes:
- Supabase Auth (GoTrue) - The authentication server
- PostgreSQL - Database for auth data
- Pre-configured with test users and settings
Prerequisites
- Docker must be installed and running
- Ports used by test infrastructure (check
infra/docker-compose.yml
)
- No full Supabase instance needed - just the Auth server
Contributing
We welcome contributions! Please see our Contributing Guide for details on how to get started.
For major changes or if you're unsure about something, please open an issue first to discuss your proposed changes.
We are building the features of Firebase using enterprise-grade, open source products. We support existing communities wherever possible, and if the products don't exist we build them and open source them ourselves.
