Authentication Setup
If your app requires login, configure authentication so LaunchStation can access protected pages during video capture.
How it works: Before each video capture, LaunchStation calls your auth provider's API to get fresh session tokens. These are injected into the browser as cookies and localStorage entries so Playwright can access authenticated pages.
Supabase Auth
LaunchStation signs in with email/password using Supabase's auth API. You need a dedicated demo user account for this.
Step 1: Create a Demo User
Create a dedicated user account that LaunchStation will use to sign in. Do not use your personal account - use a separate demo account with the minimum permissions needed to view your app.
- Go to your Supabase dashboard.
- Select your project and navigate to Authentication → Users.
- Click Add user → Create new user.
- Enter an email (e.g.
demo@yourcompany.com) and a strong password. - Make sure Auto Confirm User is checked so the account is immediately active (no email verification needed).
- Click Create user.
Seed data for the demo user
If your app shows user-specific data (e.g. a dashboard, saved items, or settings), make sure the demo account has some sample data so the video isn't empty. You can insert seed data via SQL in the Supabase SQL Editor, or sign in as the demo user and create it manually.
Step 2: Find Your Project URL and Anon Key
- In your Supabase dashboard, go to Settings → API.
- Copy the Project URL (e.g.
https://abc123.supabase.co). - Copy the anon key (also labeled public or publishable; starts with
eyJhbGciOi...). Do not use the service role key.
Step 3: Configure in LaunchStation
- Open your project in the LaunchStation dashboard and go to Settings.
- In the Authentication card, select Supabase as the auth provider.
- Fill in the four fields:
- Supabase Project URL - from Step 2
- Publishable Key (anon key) - from Step 2
- Demo Email - the demo user's email from Step 1
- Demo Password - the demo user's password from Step 1
- Click Test Connection to verify the credentials work. You should see "Connection successful!"
- Click Save.
How It Works Under the Hood
Before each video capture, LaunchStation:
- Calls
POST /auth/v1/token?grant_type=passwordon your Supabase project with the anon key and demo credentials. - Receives a fresh JWT session from Supabase.
- Injects the session as both a cookie (
sb-{ref}-auth-token) and a localStorage entry, covering both cookie-based and localStorage-based Supabase auth setups. - Playwright opens your app with the session pre-loaded - no login page interaction needed.
Troubleshooting
- "Invalid login credentials"
- Double-check the demo email and password. Make sure the user was created with Auto Confirm User enabled - unconfirmed users cannot sign in.
- "Invalid API key"
- Make sure you're using the publishable key, not the service role key. The key should start with
eyJhbGciOi... - Test connection works but video shows login page
- Your app may check auth differently than the standard Supabase cookie/localStorage pattern. If your app uses server-side rendering with a custom auth check, the injected session tokens may not be picked up. Make sure your app reads auth from the standard Supabase cookie (
sb-{ref}-auth-token) or localStorage. - Video shows empty dashboard
- The demo user probably has no data. Sign in as the demo user and create sample data, or insert seed data via SQL in the Supabase SQL Editor.