mirror of
https://github.com/supabase/supabase.git
synced 2026-10-16 14:49:10 +03:00
* Add rr auth block * Fix file structure * Update components with new flow * Fix the registry item for react router auth. * Update the forgot-password for react router. * Fix the rest of the link imports. * Fix the react route client. * Refactor the auth block for React Router. * Add config for recovery mail to the ui library supabase config. * snapshot. * Minor fixes. * Minor doc fixes. --------- Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
76 lines
3.1 KiB
Plaintext
76 lines
3.1 KiB
Plaintext
---
|
|
title: Password-based Auth (Next.js)
|
|
description: Password-based Auth block for Next.js app
|
|
---
|
|
|
|
<BlockPreview name="password-based-auth/sign-up" />
|
|
|
|
## Installation
|
|
|
|
<BlockItem
|
|
name="password-based-auth-nextjs"
|
|
description="All needed components for the password based auth flow"
|
|
/>
|
|
|
|
## Folder structure
|
|
|
|
This block includes the [Supabase client](/ui/docs/react-router/client). When installing, you can skip overwriting it.
|
|
|
|
<RegistryBlock itemName="password-based-auth-react-router" />
|
|
|
|
## Usage
|
|
|
|
Once you install the block in your React Router project, you'll get all the necessary pages and components to set up a password-based authentication flow.
|
|
|
|
### Getting started
|
|
|
|
First, add a `.env` file to your project with the following environment variables:
|
|
|
|
```env
|
|
VITE_SUPABASE_URL=
|
|
VITE_SUPABASE_ANON_KEY=
|
|
```
|
|
|
|
- If you're using supabase.com, you can find these values in the [Connect modal](https://supabase.com/dashboard/project/_?showConnect=true) under App Frameworks or in your project's [API settings](https://supabase.com/dashboard/project/_/settings/api).
|
|
|
|
- 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).
|
|
|
|
### Adding email templates
|
|
|
|
1. Add an [email template for sign-up](https://supabase.com/dashboard/project/_/auth/templates) to the Supabase project. Your signup email template should contain at least the following HTML:
|
|
|
|
```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](https://supabase.com/docs/email-templates).
|
|
|
|
1. Add an [email template for reset password](https://supabase.com/dashboard/project/_/auth/templates) to the Supabase project. Your reset password email template should contain at least the following HTML:
|
|
|
|
```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>
|
|
```
|
|
|
|
### Setting up routes and redirect URLs
|
|
|
|
1. Set the site URL in the [URL Configuration](https://supabase.com/dashboard/project/_/auth/url-configuration) settings in the Supabase Dashboard.
|
|
1. Set up the route users will visit to reset or update their password. First, update the `forgot-password.tsx` component with your `update-password` route. You'll need to tell Supabase to allow this route as the redirect URL. Go to the [URL Configuration](https://supabase.com/dashboard/project/_/auth/url-configuration) settings and add that route to the list of Redirect URLs. It should look something like: `http://example.com/update-password`.
|
|
|
|
1. Update the redirect paths in the `login.tsx` and `update-password.tsx` components to point to the logged-in routes in your app.
|