Password Reset

View saved

Goal

This snapshot advances Wavelength Daily by teaching you to request and complete a secure password reset.

Each numbered folder is a complete app. Run it independently and compare adjacent snapshots to isolate the new responsibility.

Prerequisites

Use Node.js 20 or newer, npm, and a terminal. Basic TypeScript, HTML, and CSS familiarity will help.

The development server uses port 5173. Database snapshots also need Docker and the Supabase CLI.

  • Node.js and npm
  • A code editor
  • Docker from part 4 onward

Concepts

Supabase sends a recovery link; the callback exchanges its code before the user submits a new password.

SvelteKit keeps route UI, server loading, and form actions close together while preserving a clear browser/server boundary.

Walkthrough

Create request and update actions, validate both inputs, and use a safe local next path.

Trace the example from request to rendered page, then inspect the complete matching snapshot for types, validation, and failure handling.

await supabase.auth.resetPasswordForEmail(email, { redirectTo });

Run and verify

Enter 11-Password-Reset, install dependencies, and start the app. Supabase stages must start the local stack and copy the printed anon key into .env.

Open http://localhost:5173 and keep the terminal visible so browser actions can be matched to server errors.

git clone https://github.com/michaeldunga1/fcc-sveltekit-blog.git
cd fcc-sveltekit-blog/11-Password-Reset
npm install
npx supabase start
cp .env.example .env
npm run dev

Troubleshooting

Inspect local Supabase mail output and allowed redirect URLs if no usable recovery link arrives.

A missing package usually means npm install ran in another snapshot. After changing environment variables, restart the SvelteKit process.

  • Read the first error first
  • Check the current snapshot path
  • Never commit .env or node_modules

Try this

Reset Ada's password, sign in with it, then restore password123 for later exercises.

Test one happy path and one invalid or unauthorized path before moving on.

  • Make one focused change
  • Verify it in the browser
  • Compare with the next snapshot after it works

Next: Deploy

Comments

One comment per signed-in account. Comments are saved with this page’s URL.