apps/ui-library/content/docs/tanstack/password-based-auth.mdx
This block includes the Supabase client. If you already have one installed, you can skip overwriting it.
<RegistryBlock itemName="password-based-auth-tanstack" />Once you install the block in your TanStack Start project, you'll get all the necessary pages and components to set up a password-based authentication flow.
After installing the block, you'll have the following environment variables in your .env.local file:
VITE_SUPABASE_URL=
VITE_SUPABASE_PUBLISHABLE_KEY=
If you're using supabase.com, you can find these values in the Connect modal under App Frameworks or in your project's API settings.
If you're using a local instance of Supabase, you can find these values by running supabase start or supabase status (if you already have it running).
Add an email template for sign-up to the Supabase project. Your signup email template should contain at least the following HTML:
<h2>Confirm your signup</h2>
<p>Follow this link to confirm your user:</p>
<p>
<a
href="{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=email&next={{ .RedirectTo }}"
>Confirm your email</a
>
</p>
For detailed instructions on how to configure your email templates, including the use of variables like {{ .SiteURL }},{{ .TokenHash }}, and {{ .RedirectTo }}, refer to our Email Templates guide.
Add an email template for reset password to the Supabase project. Your reset password email template should contain at least the following HTML:
<h2>Reset Password</h2>
<p>Follow this link to reset the password for your user:</p>
<p>
<a
href="{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=recovery&next={{ .RedirectTo }}"
>Reset Password</a
>
</p>
forgot-password route to the list of Redirect URLs. It should look something like: http://example.com/auth/forgot-password.login.tsx and update-password.tsx components to point to the logged-in routes in your app. 1. Our examples use /protected, but you can set this to whatever fits your app.