mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 09:25:06 +03:00
chore(studio + docs + ui library): update auth email template copy docs (#45706)
## What kind of change does this PR introduce? Docs update. Part of DEPR-198. ## What is the current behaviour? Auth email template examples and Studio template labels still reflect older default copy in a few places. ## What is the new behaviour? Updates Auth docs, local development docs, related snippets, Studio template labels, and UI Library examples to [match the updated default Auth email copy](https://linear.app/supabase/document/email-template-copywriting-updates-04bba460fd2a). <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Updated authentication email template names and descriptions across guides, replacing "Magic link" with "Sign-in link or code" terminology * Revised security notification email naming from "Identity linked/unlinked" to "Sign-in method linked/removed" and "MFA method" to "Verification method" * Updated email template example content with improved wording (e.g., "Confirm your email address" instead of "Confirm your signup") * **UI Updates** * Refined authentication-related UI text labels and descriptions in the dashboard [](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/45706) <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
This commit is contained in:
1 parent
331278bfe4
commit
38e09e1754
17 files changed
+196
-183
No files matched your search
@@ -745,7 +745,7 @@ export const auth: NavMenuConstant = {
|
||||
enabled: allAuthProvidersEnabled,
|
||||
},
|
||||
{
|
||||
name: 'Email (Magic Link or OTP)',
|
||||
name: 'Email (Magic link or OTP)',
|
||||
url: '/guides/auth/auth-email-passwordless',
|
||||
enabled: allAuthProvidersEnabled,
|
||||
},
|
||||
|
||||
@@ -10,7 +10,7 @@ Authentication emails:
|
||||
|
||||
- Confirm sign up
|
||||
- Invite user
|
||||
- Magic link
|
||||
- Magic link or OTP
|
||||
- Change email address
|
||||
- Reset password
|
||||
- Reauthentication
|
||||
@@ -20,10 +20,10 @@ Security notification emails:
|
||||
- Password changed
|
||||
- Email address changed
|
||||
- Phone number changed
|
||||
- Identity linked
|
||||
- Identity unlinked
|
||||
- Multi-factor authentication (MFA) method added
|
||||
- Multi-factor authentication (MFA) method removed
|
||||
- Sign-in method linked
|
||||
- Sign-in method removed
|
||||
- Verification method added
|
||||
- Verification method removed
|
||||
|
||||
Security emails are only sent to users if the respective security notifications have been enabled at a project-level.
|
||||
|
||||
@@ -44,8 +44,8 @@ The templating system provides the following variables for use:
|
||||
| `{{ .OldEmail }}` | Contains the old email address of the user. This variable is only supported in the "Email address changed notification" template. |
|
||||
| `{{ .Phone }}` | Contains the new phone number of the user. This variable is only supported in the "Phone number changed notification" template. |
|
||||
| `{{ .OldPhone }}` | Contains the old phone address of the user. This variable is only supported in the "Phone number changed notification" template. |
|
||||
| `{{ .Provider }}` | Contains the provider of the newly linked/unlinked identity. This variable is only supported in the "Identity linked notification" and "Identity unlinked notification" templates. |
|
||||
| `{{ .FactorType }}` | Contains the type of the newly enrolled/unenrolled MFA method. This variable is only supported in the "MFA method added notification" and "MFA method removed notification" templates. |
|
||||
| `{{ .Provider }}` | Contains the provider of the linked or removed sign-in method. This variable is only supported in the "Sign-in method linked" and "Sign-in method removed" notification templates. |
|
||||
| `{{ .FactorType }}` | Contains the type of verification method that was added or removed. This variable is only supported in the "Verification method added" and "Verification method removed" notification templates. |
|
||||
|
||||
## Editing email templates
|
||||
|
||||
@@ -68,39 +68,39 @@ curl -X PATCH "https://api.supabase.com/v1/projects/$PROJECT_REF/config/auth" \
|
||||
-H "Authorization: Bearer $SUPABASE_ACCESS_TOKEN" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"mailer_subjects_confirmation": "Confirm your signup",
|
||||
"mailer_templates_confirmation_content": "<h2>Confirm your signup</h2><p>Follow this link to confirm your user:</p><p><a href=\"{{ .ConfirmationURL }}\">Confirm your email</a></p>",
|
||||
"mailer_subjects_magic_link": "Your Magic Link",
|
||||
"mailer_templates_magic_link_content": "<h2>Magic Link</h2><p>Follow this link to login:</p><p><a href=\"{{ .ConfirmationURL }}\">Log In</a></p>",
|
||||
"mailer_subjects_recovery": "Rest Your Password",
|
||||
"mailer_templates_recovery_content": "<h2>Reset Password</h2><p>Follow this link to reset the password for your user:</p><p><a href=\"{{ .ConfirmationURL }}\">Reset Password</a></p>",
|
||||
"mailer_subjects_invite": "You have been invited",
|
||||
"mailer_templates_invite_content": "<h2>You have been invited</h2><p>You have been invited to create a user on {{ .SiteURL }}. Follow this link to accept the invite:</p><p><a href=\"{{ .ConfirmationURL }}\">Accept the invite</a></p>",
|
||||
"mailer_subjects_reauthentication": "Confirm reauthentication",
|
||||
"mailer_templates_reauthentication_content": "<h2>Confirm reauthentication</h2><p>Enter the code: {{token}}</p>",
|
||||
"mailer_subjects_email_change": "Confirm email change",
|
||||
"mailer_templates_email_change_content": "<h2>Confirm email change</h2><p>Follow this link to confirm the update of your email:</p><p><a href=\"{{ .ConfirmationURL }}\">Change email</a></p>",
|
||||
"mailer_subjects_confirmation": "Confirm your email address",
|
||||
"mailer_templates_confirmation_content": "<h2>Confirm your email address</h2><p>Follow the link below to confirm this email address and finish signing up.</p><p><a href=\"{{ .ConfirmationURL }}\">Confirm email address</a></p>",
|
||||
"mailer_subjects_magic_link": "Your sign-in link",
|
||||
"mailer_templates_magic_link_content": "<h2>Your sign-in link</h2><p>Follow the link below to sign in. This link expires shortly and can only be used once.</p><p><a href=\"{{ .ConfirmationURL }}\">Sign in</a></p>",
|
||||
"mailer_subjects_recovery": "Reset your password",
|
||||
"mailer_templates_recovery_content": "<h2>Reset your password</h2><p>We received a request to reset your password. Follow the link below to choose a new one.</p><p><a href=\"{{ .ConfirmationURL }}\">Reset password</a></p><p>If you didn't request this, you can safely ignore this email.</p>",
|
||||
"mailer_subjects_invite": "You've been invited",
|
||||
"mailer_templates_invite_content": "<h2>You've been invited</h2><p>You've been invited to create an account. Follow the link below to accept.</p><p><a href=\"{{ .ConfirmationURL }}\">Accept invitation</a></p>",
|
||||
"mailer_subjects_reauthentication": "{{ .Token }} is your verification code",
|
||||
"mailer_templates_reauthentication_content": "<h2>Your verification code</h2><p>Use the code below to verify your identity. It expires shortly.</p><p>{{ .Token }}</p>",
|
||||
"mailer_subjects_email_change": "Confirm your new email address",
|
||||
"mailer_templates_email_change_content": "<h2>Confirm your new email address</h2><p>Follow the link below to confirm {{ .NewEmail }} as your new email address.</p><p><a href=\"{{ .ConfirmationURL }}\">Confirm new email address</a></p><p>If you didn't request this change, you can safely ignore this email.</p>",
|
||||
"mailer_notifications_password_changed_enabled": true,
|
||||
"mailer_subjects_password_changed_notification": "Your password has been changed",
|
||||
"mailer_templates_password_changed_notification_content": "<h2>Your password has been changed</h2>\n\n<p>This is a confirmation that the password for your account {{ .Email }} has just been changed.</p>\n<p>If you did not make this change, please contact support.</p>",
|
||||
"mailer_subjects_password_changed_notification": "Your password was changed",
|
||||
"mailer_templates_password_changed_notification_content": "<h2>Your password was changed</h2>\n\n<p>The password for your account was recently changed.</p>\n<p>If you didn't make this change, reset your password and contact support immediately.</p>",
|
||||
"mailer_notifications_email_changed_enabled": true,
|
||||
"mailer_subjects_email_changed_notification": "Your email address has been changed",
|
||||
"mailer_templates_email_changed_notification_content": "<h2>Your email address has been changed</h2>\n\n<p>The email address for your account has been changed from {{ .OldEmail }} to {{ .Email }}.</p>\n<p>If you did not make this change, please contact support.</p>",
|
||||
"mailer_subjects_email_changed_notification": "Your email address was changed",
|
||||
"mailer_templates_email_changed_notification_content": "<h2>Your email address was changed</h2>\n\n<p>The email address for your account was changed from {{ .OldEmail }} to {{ .Email }}.</p>\n<p>If you didn't make this change, contact support immediately.</p>",
|
||||
"mailer_notifications_phone_changed_enabled": true,
|
||||
"mailer_subjects_phone_changed_notification": "Your phone number has been changed",
|
||||
"mailer_templates_phone_changed_notification_content": "<h2>Your phone number has been changed</h2>\n\n<p>The phone number for your account {{ .Email }} has been changed from {{ .OldPhone }} to {{ .Phone }}.</p>\n<p>If you did not make this change, please contact support immediately.</p>",
|
||||
"mailer_subjects_phone_changed_notification": "Your phone number was changed",
|
||||
"mailer_templates_phone_changed_notification_content": "<h2>Your phone number was changed</h2>\n\n<p>The phone number for your account was changed from {{ .OldPhone }} to {{ .Phone }}.</p>\n<p>If you didn't make this change, contact support immediately.</p>",
|
||||
"mailer_notifications_mfa_factor_enrolled_enabled": true,
|
||||
"mailer_subjects_mfa_factor_enrolled_notification": "A new MFA factor has been enrolled",
|
||||
"mailer_templates_mfa_factor_enrolled_notification_content": "<h2>A new MFA factor has been enrolled</h2>\n\n<p>A new factor ({{ .FactorType }}) has been enrolled for your account {{ .Email }}.</p>\n<p>If you did not make this change, please contact support immediately.</p>",
|
||||
"mailer_subjects_mfa_factor_enrolled_notification": "A new verification method was added to your account",
|
||||
"mailer_templates_mfa_factor_enrolled_notification_content": "<h2>A new verification method was added</h2>\n\n<p>Sign-in verification method {{ .FactorType }} was added to your account.</p>\n<p>If you didn't make this change, contact support immediately.</p>",
|
||||
"mailer_notifications_mfa_factor_unenrolled_enabled": true,
|
||||
"mailer_subjects_mfa_factor_unenrolled_notification": "An MFA factor has been unenrolled",
|
||||
"mailer_templates_mfa_factor_unenrolled_notification_content": "<h2>An MFA factor has been unenrolled</h2>\n\n<p>A factor ({{ .FactorType }}) has been unenrolled for your account {{ .Email }}.</p>\n<p>If you did not make this change, please contact support immediately.</p>",
|
||||
"mailer_subjects_mfa_factor_unenrolled_notification": "A verification method was removed from your account",
|
||||
"mailer_templates_mfa_factor_unenrolled_notification_content": "<h2>A verification method was removed</h2>\n\n<p>Sign-in verification method {{ .FactorType }} was removed from your account.</p>\n<p>If you didn't make this change, contact support immediately.</p>",
|
||||
"mailer_notifications_identity_linked_enabled": true,
|
||||
"mailer_subjects_identity_linked_notification": "A new identity has been linked",
|
||||
"mailer_templates_identity_linked_notification_content": "<h2>A new identity has been linked</h2>\n\n<p>A new identity ({{ .Provider }}) has been linked to your account {{ .Email }}.</p>\n<p>If you did not make this change, please contact support immediately.</p>",
|
||||
"mailer_subjects_identity_linked_notification": "A sign-in method was linked to your account",
|
||||
"mailer_templates_identity_linked_notification_content": "<h2>A sign-in method was linked</h2>\n\n<p>Your {{ .Provider }} account was linked as a sign-in method for {{ .Email }}.</p>\n<p>If you didn't make this change, contact support immediately.</p>",
|
||||
"mailer_notifications_identity_unlinked_enabled": true,
|
||||
"mailer_subjects_identity_unlinked_notification": "An identity has been unlinked",
|
||||
"mailer_templates_identity_unlinked_notification_content": "<h2>An identity has been unlinked</h2>\n\n<p>An identity ({{ .Provider }}) has been unlinked from your account {{ .Email }}.</p>\n<p>If you did not make this change, please contact support immediately.</p>"
|
||||
"mailer_subjects_identity_unlinked_notification": "A sign-in method was removed from your account",
|
||||
"mailer_templates_identity_unlinked_notification_content": "<h2>A sign-in method was removed</h2>\n\n<p>Your {{ .Provider }} account was removed as a sign-in method for {{ .Email }}.</p>\n<p>If you didn't make this change, contact support immediately.</p>"
|
||||
}'
|
||||
```
|
||||
|
||||
@@ -119,10 +119,10 @@ To guard against this there are the options below:
|
||||
**Option 1**
|
||||
|
||||
- Use an email OTP instead by including `{{ .Token }}` in the email template
|
||||
- Create your own custom email link to redirect the user to a page where they can enter with their email and token to login
|
||||
- Create your own custom email link to redirect the user to a page where they can enter their email and token to sign in
|
||||
|
||||
```html
|
||||
<a href="{{ .SiteURL }}/confirm-signup">Confirm your signup</a>
|
||||
<a href="{{ .SiteURL }}/confirm-signup">Confirm email address</a>
|
||||
```
|
||||
|
||||
- Log them in by verifying the OTP token value with their email e.g. with [`supabase.auth.verifyOtp`](/docs/reference/javascript/auth-verifyotp) show below
|
||||
@@ -137,7 +137,7 @@ const { data, error } = await supabase.auth.verifyOtp({ email, token, type: 'ema
|
||||
|
||||
```html
|
||||
<a href="{{ .SiteURL }}/confirm-signup?confirmation_url={{ .ConfirmationURL }}">
|
||||
Confirm your signup
|
||||
Confirm email address
|
||||
</a>
|
||||
```
|
||||
|
||||
|
||||
@@ -653,62 +653,62 @@ const PROJECT_REF = '<your-project-ref>'
|
||||
// Email Subjects
|
||||
const subjects = {
|
||||
en: {
|
||||
signup: 'Confirm Your Email',
|
||||
recovery: 'Reset Your Password',
|
||||
invite: 'You have been invited',
|
||||
magiclink: 'Your Magic Link',
|
||||
email_change: 'Confirm Email Change',
|
||||
email_change_new: 'Confirm New Email Address',
|
||||
reauthentication: 'Confirm Reauthentication',
|
||||
signup: 'Confirm your email address',
|
||||
recovery: 'Reset your password',
|
||||
invite: "You've been invited",
|
||||
magiclink: 'Your sign-in link',
|
||||
email_change: 'Confirm your new email address',
|
||||
email_change_new: 'Confirm your new email address',
|
||||
reauthentication: '{{token}} is your verification code',
|
||||
},
|
||||
es: {
|
||||
signup: 'Confirma tu correo electrónico',
|
||||
recovery: 'Restablece tu contraseña',
|
||||
invite: 'Has sido invitado',
|
||||
magiclink: 'Tu enlace mágico',
|
||||
email_change: 'Confirma el cambio de correo electrónico',
|
||||
email_change_new: 'Confirma la Nueva Dirección de Correo',
|
||||
reauthentication: 'Confirma la reautenticación',
|
||||
magiclink: 'Tu enlace de inicio de sesión',
|
||||
email_change: 'Confirma tu nueva dirección de correo electrónico',
|
||||
email_change_new: 'Confirma tu nueva dirección de correo electrónico',
|
||||
reauthentication: '{{token}} es tu código de verificación',
|
||||
},
|
||||
fr: {
|
||||
signup: 'Confirmez votre adresse e-mail',
|
||||
recovery: 'Réinitialisez votre mot de passe',
|
||||
invite: 'Vous avez été invité',
|
||||
magiclink: 'Votre Lien Magique',
|
||||
email_change: 'Confirmez le changement d’adresse e-mail',
|
||||
magiclink: 'Votre lien de connexion',
|
||||
email_change: 'Confirmez votre nouvelle adresse e-mail',
|
||||
email_change_new: 'Confirmez la nouvelle adresse e-mail',
|
||||
reauthentication: 'Confirmez la réauthentification',
|
||||
reauthentication: '{{token}} est votre code de vérification',
|
||||
},
|
||||
}
|
||||
|
||||
// HTML Body
|
||||
const templates = {
|
||||
en: {
|
||||
signup: `<h2>Confirm your email</h2><p>Follow this link to confirm your email:</p><p><a href="{{confirmation_url}}">Confirm your email address</a></p><p>Alternatively, enter the code: {{token}}</p>`,
|
||||
recovery: `<h2>Reset password</h2><p>Follow this link to reset the password for your user:</p><p><a href="{{confirmation_url}}">Reset password</a></p><p>Alternatively, enter the code: {{token}}</p>`,
|
||||
invite: `<h2>You have been invited</h2><p>You have been invited to create a user on {{site_url}}. Follow this link to accept the invite:</p><p><a href="{{confirmation_url}}">Accept the invite</a></p><p>Alternatively, enter the code: {{token}}</p>`,
|
||||
magiclink: `<h2>Magic Link</h2><p>Follow this link to login:</p><p><a href="{{confirmation_url}}">Log In</a></p><p>Alternatively, enter the code: {{token}}</p>`,
|
||||
email_change: `<h2>Confirm email address change</h2><p>Follow this link to confirm the update of your email address from {{old_email}} to {{new_email}}:</p><p><a href="{{confirmation_url}}">Change email address</a></p><p>Alternatively, enter the codes: {{token}} and {{new_token}}</p>`,
|
||||
email_change_new: `<h2>Confirm New Email Address</h2><p>Follow this link to confirm your new email address:</p><p><a href="{{confirmation_url}}">Confirm new email address</a></p><p>Alternatively, enter the code: {{new_token}}</p>`,
|
||||
reauthentication: `<h2>Confirm reauthentication</h2><p>Enter the code: {{token}}</p>`,
|
||||
signup: `<h2>Confirm your email address</h2><p>Follow the link below to confirm this email address and finish signing up.</p><p><a href="{{confirmation_url}}">Confirm email address</a></p>`,
|
||||
recovery: `<h2>Reset your password</h2><p>We received a request to reset your password. Follow the link below to choose a new one.</p><p><a href="{{confirmation_url}}">Reset password</a></p><p>If you didn't request this, you can safely ignore this email.</p>`,
|
||||
invite: `<h2>You've been invited</h2><p>You've been invited to create an account. Follow the link below to accept.</p><p><a href="{{confirmation_url}}">Accept invitation</a></p>`,
|
||||
magiclink: `<h2>Your sign-in link</h2><p>Follow the link below to sign in. This link expires shortly and can only be used once.</p><p><a href="{{confirmation_url}}">Sign in</a></p>`,
|
||||
email_change: `<h2>Confirm your new email address</h2><p>Follow the link below to confirm {{new_email}} as your new email address.</p><p><a href="{{confirmation_url}}">Confirm new email address</a></p><p>If you didn't request this change, you can safely ignore this email.</p>`,
|
||||
email_change_new: `<h2>Confirm your new email address</h2><p>Follow the link below to confirm {{new_email}} as your new email address.</p><p><a href="{{confirmation_url}}">Confirm new email address</a></p><p>If you didn't request this change, you can safely ignore this email.</p>`,
|
||||
reauthentication: `<h2>Your verification code</h2><p>Use the code below to verify your identity. It expires shortly.</p><p>{{token}}</p>`,
|
||||
},
|
||||
es: {
|
||||
signup: `<h2>Confirma tu correo electrónico</h2><p>Sigue este enlace para confirmar tu correo electrónico:</p><p><a href="{{confirmation_url}}">Confirma tu correo electrónico</a></p><p>Alternativamente, ingresa el código: {{token}}</p>`,
|
||||
recovery: `<h2>Restablece tu contraseña</h2><p>Sigue este enlace para restablecer la contraseña de tu usuario:</p><p><a href="{{confirmation_url}}">Restablece tu contraseña</a></p><p>Alternativamente, ingresa el código: {{token}}</p>`,
|
||||
invite: `<h2>Has sido invitado</h2><p>Has sido invitado para crear un usuario en {{site_url}}. Sigue este enlace para aceptar la invitación:</p><p><a href="{{confirmation_url}}">Aceptar la invitación</a></p><p>Alternativamente, ingresa el código: {{token}}</p>`,
|
||||
magiclink: `<h2>Tu enlace mágico</h2><p>Sigue este enlace para iniciar sesión:</p><p><a href="{{confirmation_url}}">Iniciar sesión</a></p><p>Alternativamente, ingresa el código: {{token}}</p>`,
|
||||
email_change: `<h2>Confirma el cambio de correo electrónico</h2><p>Sigue este enlace para confirmar la actualización de tu correo electrónico de {{old_email}} a {{new_email}}:</p><p><a href="{{confirmation_url}}">Cambiar correo electrónico</a></p><p>Alternativamente, ingresa los códigos: {{token}} y {{new_token}}</p>`,
|
||||
email_change_new: `<h2>Confirma la Nueva Dirección de Correo</h2><p>Sigue este enlace para confirmar tu nueva dirección de correo electrónico:</p><p><a href="{{confirmation_url}}">Confirma la nueva dirección de correo</a></p><p>Alternativamente, ingresa el código: {{new_token}}</p>`,
|
||||
reauthentication: `<h2>Confirma la reautenticación</h2><p>Ingresa el código: {{token}}</p>`,
|
||||
signup: `<h2>Confirma tu dirección de correo electrónico</h2><p>Sigue el enlace de abajo para confirmar esta dirección de correo electrónico y terminar el registro.</p><p><a href="{{confirmation_url}}">Confirmar dirección de correo electrónico</a></p>`,
|
||||
recovery: `<h2>Restablece tu contraseña</h2><p>Recibimos una solicitud para restablecer tu contraseña. Sigue el enlace de abajo para elegir una nueva.</p><p><a href="{{confirmation_url}}">Restablecer contraseña</a></p><p>Si no solicitaste esto, puedes ignorar este correo.</p>`,
|
||||
invite: `<h2>Has sido invitado</h2><p>Te han invitado a crear una cuenta. Sigue el enlace de abajo para aceptar.</p><p><a href="{{confirmation_url}}">Aceptar invitación</a></p>`,
|
||||
magiclink: `<h2>Tu enlace de inicio de sesión</h2><p>Sigue el enlace de abajo para iniciar sesión. Este enlace caduca pronto y solo se puede usar una vez.</p><p><a href="{{confirmation_url}}">Iniciar sesión</a></p>`,
|
||||
email_change: `<h2>Confirma tu nueva dirección de correo electrónico</h2><p>Sigue el enlace de abajo para confirmar {{new_email}} como tu nueva dirección de correo electrónico.</p><p><a href="{{confirmation_url}}">Confirmar nueva dirección de correo electrónico</a></p><p>Si no solicitaste este cambio, puedes ignorar este correo.</p>`,
|
||||
email_change_new: `<h2>Confirma tu nueva dirección de correo electrónico</h2><p>Sigue el enlace de abajo para confirmar {{new_email}} como tu nueva dirección de correo electrónico.</p><p><a href="{{confirmation_url}}">Confirmar nueva dirección de correo electrónico</a></p><p>Si no solicitaste este cambio, puedes ignorar este correo.</p>`,
|
||||
reauthentication: `<h2>Tu código de verificación</h2><p>Usa el código de abajo para verificar tu identidad. Caduca pronto.</p><p>{{token}}</p>`,
|
||||
},
|
||||
fr: {
|
||||
signup: `<h2>Confirmez votre adresse e-mail</h2><p>Suivez ce lien pour confirmer votre adresse e-mail :</p><p><a href="{{confirmation_url}}">Confirmez votre adresse e-mail</a></p><p>Vous pouvez aussi saisir le code : {{token}}</p>`,
|
||||
recovery: `<h2>Réinitialisez votre mot de passe</h2><p>Suivez ce lien pour réinitialiser votre mot de passe :</p><p><a href="{{confirmation_url}}">Réinitialisez votre mot de passe</a></p><p>Vous pouvez aussi saisir le code : {{token}}</p>`,
|
||||
invite: `<h2>Vous avez été invité</h2><p>Vous avez été invité à créer un utilisateur sur {{site_url}}. Suivez ce lien pour accepter l'invitation :</p><p><a href="{{confirmation_url}}">Acceptez l'invitation</a></p><p>Vous pouvez aussi saisir le code : {{token}}</p>`,
|
||||
magiclink: `<h2>Votre Lien Magique</h2><p>Suivez ce lien pour vous connecter :</p><p><a href="{{confirmation_url}}">Connectez-vous</a></p><p>Vous pouvez aussi saisir le code : {{token}}</p>`,
|
||||
email_change: `<h2>Confirmez le changement d’adresse e-mail</h2><p>Suivez ce lien pour confirmer la mise à jour de votre adresse e-mail de {{old_email}} à {{new_email}} :</p><p><a href="{{confirmation_url}}">Changez d’adresse e-mail</a></p><p>Vous pouvez aussi saisir les codes : {{token}} et {{new_token}}</p>`,
|
||||
email_change_new: `<h2>Confirmez la nouvelle adresse e-mail</h2><p>Suivez ce lien pour confirmer votre nouvelle adresse e-mail :</p><p><a href="{{confirmation_url}}">Confirmez la nouvelle adresse e-mail</a></p><p>Vous pouvez aussi saisir le code : {{new_token}}</p>`,
|
||||
reauthentication: `<h2>Confirmez la réauthentification</h2><p>Saisissez le code : {{token}}</p>`,
|
||||
signup: `<h2>Confirmez votre adresse e-mail</h2><p>Suivez le lien ci-dessous pour confirmer cette adresse e-mail et terminer votre inscription.</p><p><a href="{{confirmation_url}}">Confirmer l'adresse e-mail</a></p>`,
|
||||
recovery: `<h2>Réinitialisez votre mot de passe</h2><p>Nous avons reçu une demande de réinitialisation de votre mot de passe. Suivez le lien ci-dessous pour en choisir un nouveau.</p><p><a href="{{confirmation_url}}">Réinitialiser le mot de passe</a></p><p>Si vous n'avez pas fait cette demande, vous pouvez ignorer cet e-mail.</p>`,
|
||||
invite: `<h2>Vous avez été invité</h2><p>Vous avez été invité à créer un compte. Suivez le lien ci-dessous pour accepter.</p><p><a href="{{confirmation_url}}">Accepter l'invitation</a></p>`,
|
||||
magiclink: `<h2>Votre lien de connexion</h2><p>Suivez le lien ci-dessous pour vous connecter. Ce lien expire bientôt et ne peut être utilisé qu'une seule fois.</p><p><a href="{{confirmation_url}}">Se connecter</a></p>`,
|
||||
email_change: `<h2>Confirmez votre nouvelle adresse e-mail</h2><p>Suivez le lien ci-dessous pour confirmer {{new_email}} comme nouvelle adresse e-mail.</p><p><a href="{{confirmation_url}}">Confirmer la nouvelle adresse e-mail</a></p><p>Si vous n'avez pas demandé ce changement, vous pouvez ignorer cet e-mail.</p>`,
|
||||
email_change_new: `<h2>Confirmez votre nouvelle adresse e-mail</h2><p>Suivez le lien ci-dessous pour confirmer {{new_email}} comme nouvelle adresse e-mail.</p><p><a href="{{confirmation_url}}">Confirmer la nouvelle adresse e-mail</a></p><p>Si vous n'avez pas demandé ce changement, vous pouvez ignorer cet e-mail.</p>`,
|
||||
reauthentication: `<h2>Votre code de vérification</h2><p>Utilisez le code ci-dessous pour vérifier votre identité. Il expire bientôt.</p><p>{{token}}</p>`,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -810,24 +810,24 @@ const FROM_EMAIL = 'myemail@gmail.com'
|
||||
|
||||
// Email Subjects
|
||||
const subjects = {
|
||||
signup: 'Confirm Your Email',
|
||||
recovery: 'Reset Your Password',
|
||||
invite: 'You have been invited',
|
||||
magiclink: 'Your Magic Link',
|
||||
email_change: 'Confirm Email Change',
|
||||
email_change_new: 'Confirm New Email Address',
|
||||
reauthentication: 'Confirm Reauthentication'
|
||||
signup: 'Confirm your email address',
|
||||
recovery: 'Reset your password',
|
||||
invite: "You've been invited",
|
||||
magiclink: 'Your sign-in link',
|
||||
email_change: 'Confirm your new email address',
|
||||
email_change_new: 'Confirm your new email address',
|
||||
reauthentication: '{{token}} is your verification code'
|
||||
};
|
||||
|
||||
// HTML Body
|
||||
const templates = {
|
||||
signup: `<h2>Confirm your email</h2><p>Follow this link to confirm your email:</p><p><a href="{{confirmation_url}}">Confirm your email address</a></p><p>Alternatively, enter the code: {{token}}</p>`,
|
||||
recovery: `<h2>Reset password</h2><p>Follow this link to reset the password for your user:</p><p><a href="{{confirmation_url}}">Reset password</a></p><p>Alternatively, enter the code: {{token}}</p>`,
|
||||
invite: `<h2>You have been invited</h2><p>You have been invited to create a user on {{site_url}}. Follow this link to accept the invite:</p><p><a href="{{confirmation_url}}">Accept the invite</a></p><p>Alternatively, enter the code: {{token}}</p>`,
|
||||
magiclink: `<h2>Magic Link</h2><p>Follow this link to login:</p><p><a href="{{confirmation_url}}">Log In</a></p><p>Alternatively, enter the code: {{token}}</p>`,
|
||||
email_change: `<h2>Confirm email address change</h2><p>Follow this link to confirm the update of your email address from {{old_email}} to {{new_email}}:</p><p><a href="{{confirmation_url}}">Change email address</a></p><p>Alternatively, enter the codes: {{token}} and {{new_token}}</p>`,
|
||||
email_change_new: `<h2>Confirm New Email Address</h2><p>Follow this link to confirm your new email address:</p><p><a href="{{confirmation_url}}">Confirm new email address</a></p><p>Alternatively, enter the code: {{new_token}}</p>`,
|
||||
reauthentication: `<h2>Confirm reauthentication</h2><p>Enter the code: {{token}}</p>`
|
||||
signup: `<h2>Confirm your email address</h2><p>Follow the link below to confirm this email address and finish signing up.</p><p><a href="{{confirmation_url}}">Confirm email address</a></p>`,
|
||||
recovery: `<h2>Reset your password</h2><p>We received a request to reset your password. Follow the link below to choose a new one.</p><p><a href="{{confirmation_url}}">Reset password</a></p><p>If you didn't request this, you can safely ignore this email.</p>`,
|
||||
invite: `<h2>You've been invited</h2><p>You've been invited to create an account. Follow the link below to accept.</p><p><a href="{{confirmation_url}}">Accept invitation</a></p>`,
|
||||
magiclink: `<h2>Your sign-in link</h2><p>Follow the link below to sign in. This link expires shortly and can only be used once.</p><p><a href="{{confirmation_url}}">Sign in</a></p>`,
|
||||
email_change: `<h2>Confirm your new email address</h2><p>Follow the link below to confirm {{new_email}} as your new email address.</p><p><a href="{{confirmation_url}}">Confirm new email address</a></p><p>If you didn't request this change, you can safely ignore this email.</p>`,
|
||||
email_change_new: `<h2>Confirm your new email address</h2><p>Follow the link below to confirm {{new_email}} as your new email address.</p><p><a href="{{confirmation_url}}">Confirm new email address</a></p><p>If you didn't request this change, you can safely ignore this email.</p>`,
|
||||
reauthentication: `<h2>Your verification code</h2><p>Use the code below to verify your identity. It expires shortly.</p><p>{{token}}</p>`
|
||||
};
|
||||
|
||||
function generateConfirmationURL(email_data) {
|
||||
|
||||
@@ -160,13 +160,13 @@ Update your signup email template to send the token hash. For detailed instructi
|
||||
Your signup email template should contain the following HTML:
|
||||
|
||||
```html
|
||||
<h2>Confirm your signup</h2>
|
||||
<h2>Confirm your email address</h2>
|
||||
|
||||
<p>Follow this link to confirm your user:</p>
|
||||
<p>Follow the link below to confirm this email address and finish signing up.</p>
|
||||
<p>
|
||||
<a
|
||||
href="{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=email&next={{ .RedirectTo }}"
|
||||
>Confirm your email</a
|
||||
>Confirm email address</a
|
||||
>
|
||||
</p>
|
||||
```
|
||||
@@ -682,13 +682,13 @@ Update your reset password email template to send the token hash. See [Email Tem
|
||||
Your reset password email template should contain the following HTML:
|
||||
|
||||
```html
|
||||
<h2>Reset Password</h2>
|
||||
<h2>Reset your password</h2>
|
||||
|
||||
<p>Follow this link to reset the password for your user:</p>
|
||||
<p>We received a request to reset your password. Follow the link below to choose a new one.</p>
|
||||
<p>
|
||||
<a
|
||||
href="{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=recovery&next=/account/update-password"
|
||||
>Reset Password</a
|
||||
>Reset password</a
|
||||
>
|
||||
</p>
|
||||
```
|
||||
|
||||
@@ -102,11 +102,13 @@ For example, change the following:
|
||||
|
||||
```html
|
||||
<!-- Old -->
|
||||
<a href="{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=email">Confirm your mail</a>
|
||||
<a href="{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=email"
|
||||
>Confirm email address</a
|
||||
>
|
||||
|
||||
<!-- New -->
|
||||
<a href="{{ .RedirectTo }}/auth/confirm?token_hash={{ .TokenHash }}&type=email"
|
||||
>Confirm your mail</a
|
||||
>Confirm email address</a
|
||||
>
|
||||
```
|
||||
|
||||
|
||||
@@ -29,8 +29,9 @@ content_path = "./supabase/templates/invite.html"
|
||||
```html name=supabase/templates/invite.html
|
||||
<html>
|
||||
<body>
|
||||
<h2>Confirm your signup</h2>
|
||||
<p><a href="{{ .ConfirmationURL }}">Confirm your email</a></p>
|
||||
<h2>Confirm your email address</h2>
|
||||
<p>Follow the link below to confirm this email address and finish signing up.</p>
|
||||
<p><a href="{{ .ConfirmationURL }}">Confirm email address</a></p>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
@@ -44,17 +45,15 @@ content_path = "./supabase/templates/invite.html"
|
||||
```toml name=supabase/config.toml
|
||||
[auth.email.notification.password_changed]
|
||||
enabled = true
|
||||
subject = "Your password has been changed"
|
||||
subject = "Your password was changed"
|
||||
content_path = "./templates/password_changed_notification.html"
|
||||
```
|
||||
|
||||
```html name=templates/password_changed_notification.html
|
||||
<html>
|
||||
<body>
|
||||
<p>
|
||||
This is a confirmation that the password for your account {{ .Email }} has just been changed.
|
||||
</p>
|
||||
<p>If you did not make this change, please contact support.</p>
|
||||
<p>The password for your account was recently changed.</p>
|
||||
<p>If you didn't make this change, reset your password and contact support immediately.</p>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
@@ -67,44 +66,44 @@ There are several authentication-related email templates which can be configured
|
||||
|
||||
### `auth.email.template.invite`
|
||||
|
||||
**Default subject**: "You have been invited"
|
||||
**Default subject**: "You've been invited"
|
||||
**When sent**: When a user is invited to join your application via email invitation
|
||||
**Purpose**: Invite users who don't yet have an account to sign up
|
||||
**Purpose**: Invite someone to create an account
|
||||
**Content**: Contains a link for the invited user to accept the invitation and create their account
|
||||
|
||||
### `auth.email.template.confirmation`
|
||||
|
||||
**Default subject**: "Confirm Your Signup"
|
||||
**Default subject**: "Confirm your email address"
|
||||
**When sent**: When a user signs up and needs to verify their email address
|
||||
**Purpose**: Ask users to confirm their email address after signing up
|
||||
**Content**: Contains a confirmation link to verify the user's email address
|
||||
|
||||
### `auth.email.template.recovery`
|
||||
|
||||
**Default subject**: "Reset Your Password"
|
||||
**Default subject**: "Reset your password"
|
||||
**When sent**: When a user requests a password reset
|
||||
**Purpose**: Allow users to reset their password if they forget it
|
||||
**Purpose**: Send a password reset link or code
|
||||
**Content**: Contains a link to reset the user's password
|
||||
|
||||
### `auth.email.template.magic_link`
|
||||
|
||||
**Default subject**: "Your Magic Link"
|
||||
**When sent**: When a user requests a magic link for passwordless authentication
|
||||
**Purpose**: Allow users to sign in via a one-time link sent to their email
|
||||
**Default subject**: "Your sign-in link"
|
||||
**When sent**: When a user requests a magic link or email OTP for passwordless authentication
|
||||
**Purpose**: Send a one-time sign-in link or one-time password
|
||||
**Content**: Contains a secure link that automatically logs the user in when clicked
|
||||
|
||||
### `auth.email.template.email_change`
|
||||
|
||||
**Default subject**: "Confirm Email Change"
|
||||
**Default subject**: "Confirm your new email address"
|
||||
**When sent**: When a user requests to change their email address
|
||||
**Purpose**: Ask users to verify their new email address after changing it
|
||||
**Content**: Contains a confirmation link to verify the new email address
|
||||
|
||||
### `auth.email.template.reauthentication`
|
||||
|
||||
**Default subject**: "Confirm Reauthentication"
|
||||
**Default subject**: "{{ .Token }} is your verification code"
|
||||
**When sent**: When a user needs to re-authenticate for sensitive operations
|
||||
**Purpose**: Ask users to re-authenticate before performing a sensitive action
|
||||
**Purpose**: Ask users to verify their identity before a sensitive operation
|
||||
**Content**: Contains a 6-digit OTP code for verification
|
||||
|
||||
## Available security notification email templates
|
||||
@@ -113,52 +112,52 @@ There are several security notification email templates which can be configured.
|
||||
|
||||
### `auth.email.notification.password_changed`
|
||||
|
||||
**Default subject**: "Your password has been changed"
|
||||
**Default subject**: "Your password was changed"
|
||||
**When sent**: When a user's password is changed
|
||||
**Purpose**: Notify users when their password has changed
|
||||
**Content**: Confirms that the password for the account has been changed
|
||||
|
||||
### `auth.email.notification.email_changed`
|
||||
|
||||
**Default subject**: "Your email address has been changed"
|
||||
**Default subject**: "Your email address was changed"
|
||||
**When sent**: When a user's email address is changed
|
||||
**Purpose**: Notify users when their email address has changed
|
||||
**Content**: Confirms the change from the old email to the new email address
|
||||
|
||||
### `auth.email.notification.phone_changed`
|
||||
|
||||
**Default subject**: "Your phone number has been changed"
|
||||
**Default subject**: "Your phone number was changed"
|
||||
**When sent**: When a user's phone number is changed
|
||||
**Purpose**: Notify users when their phone number has changed
|
||||
**Content**: Confirms the change from the old phone number to the new phone number
|
||||
|
||||
### `auth.email.notification.mfa_factor_enrolled`
|
||||
|
||||
**Default subject**: "A new MFA factor has been enrolled"
|
||||
**When sent**: When a new MFA factor is added to the user's account
|
||||
**Purpose**: Notify users when a new multi-factor authentication method has been added to their account
|
||||
**Content**: Confirms that a new MFA factor type has been enrolled
|
||||
**Default subject**: "A new verification method was added to your account"
|
||||
**When sent**: When a new verification method is added to the user's account
|
||||
**Purpose**: Notify users when an MFA method has been added to their account
|
||||
**Content**: Confirms that a new verification method was added
|
||||
|
||||
### `auth.email.notification.mfa_factor_unenrolled`
|
||||
|
||||
**Default subject**: "An MFA factor has been unenrolled"
|
||||
**When sent**: When an MFA factor is removed from the user's account
|
||||
**Purpose**: Notify users when a multi-factor authentication method has been removed from their account
|
||||
**Content**: Confirms that an MFA factor type has been unenrolled
|
||||
**Default subject**: "A verification method was removed from your account"
|
||||
**When sent**: When a verification method is removed from the user's account
|
||||
**Purpose**: Notify users when an MFA method has been removed from their account
|
||||
**Content**: Confirms that a verification method was removed
|
||||
|
||||
### `auth.email.notification.identity_linked`
|
||||
|
||||
**Default subject**: "A new identity has been linked"
|
||||
**When sent**: When a new identity is linked to the account
|
||||
**Purpose**: Notify users when a new identity has been linked to their account
|
||||
**Content**: Confirms that a new identity has been linked
|
||||
**Default subject**: "A sign-in method was linked to your account"
|
||||
**When sent**: When a sign-in method is linked to the account
|
||||
**Purpose**: Notify users when a sign-in method has been linked to their account
|
||||
**Content**: Confirms that a sign-in method was linked
|
||||
|
||||
### `auth.email.notification.identity_unlinked`
|
||||
|
||||
**Default subject**: "An identity has been unlinked"
|
||||
**When sent**: When an identity has been unlinked from the account
|
||||
**Purpose**: Notify users when an identity has been unlinked from their account
|
||||
**Content**: Confirms that an identity has been unlinked
|
||||
**Default subject**: "A sign-in method was removed from your account"
|
||||
**When sent**: When a sign-in method is removed from the account
|
||||
**Purpose**: Notify users when a sign-in method has been removed from their account
|
||||
**Content**: Confirms that a sign-in method was removed
|
||||
|
||||
## Template variables
|
||||
|
||||
@@ -175,7 +174,7 @@ https://project-ref.supabase.co/auth/v1/verify?token={{ .TokenHash }}&type=email
|
||||
**Usage**
|
||||
|
||||
```html
|
||||
<p>Click here to confirm: {{ .ConfirmationURL }}</p>
|
||||
<p><a href="{{ .ConfirmationURL }}">Confirm email address</a></p>
|
||||
```
|
||||
|
||||
### `Token`
|
||||
@@ -195,10 +194,10 @@ Contains a hashed version of the `Token`. This is useful for constructing your o
|
||||
**Usage**
|
||||
|
||||
```html
|
||||
<p>Follow this link to confirm your user:</p>
|
||||
<p>Follow the link below to confirm this email address and finish signing up.</p>
|
||||
<p>
|
||||
<a href="{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=email"
|
||||
>Confirm your email</a
|
||||
>Confirm email address</a
|
||||
>
|
||||
</p>
|
||||
```
|
||||
@@ -287,22 +286,22 @@ Contains the user's old phone number. This is only available in the `phone_chang
|
||||
|
||||
### `Provider`
|
||||
|
||||
Contains the provider of the newly linked/unlinked identity. This is only available in the `identity_linked_notification` and `identity_unlinked_notification` email templates.
|
||||
Contains the provider of the linked or removed sign-in method. This is only available in the `identity_linked_notification` and `identity_unlinked_notification` email templates.
|
||||
|
||||
**Usage**
|
||||
|
||||
```html
|
||||
<p>A new identity ({{ .Provider }}) has been linked to your account.</p>
|
||||
<p>Your {{ .Provider }} account was linked as a sign-in method.</p>
|
||||
```
|
||||
|
||||
### `FactorType`
|
||||
|
||||
Contains the type of the newly enrolled/unenrolled MFA factor. This is only available in the `mfa_factor_enrolled_notification` and `mfa_factor_unenrolled_notification` email templates.
|
||||
Contains the type of verification method that was added or removed. This is only available in the `mfa_factor_enrolled_notification` and `mfa_factor_unenrolled_notification` email templates.
|
||||
|
||||
**Usage**
|
||||
|
||||
```html
|
||||
<p>A new factor ({{ .FactorType }}) has been enrolled for your account.</p>
|
||||
<p>Sign-in verification method {{ .FactorType }} was added to your account.</p>
|
||||
```
|
||||
|
||||
## Deploying email templates
|
||||
|
||||
@@ -51,12 +51,12 @@ const TemplateVariables: Record<TemplateVariableName, TemplateVariable> = {
|
||||
Provider: {
|
||||
name: 'Provider',
|
||||
value: '{{ .Provider }}',
|
||||
description: 'Provider of newly linked/unlinked identity',
|
||||
description: 'Provider of the sign-in method',
|
||||
},
|
||||
FactorType: {
|
||||
name: 'FactorType',
|
||||
value: '{{ .FactorType }}',
|
||||
description: 'Type of newly enrolled/unenrolled MFA factor',
|
||||
description: 'Type of verification method',
|
||||
},
|
||||
Data: {
|
||||
name: 'Data',
|
||||
@@ -110,13 +110,16 @@ const INVITE: AuthTemplate = {
|
||||
id: 'INVITE',
|
||||
type: 'object',
|
||||
title: 'Invite user',
|
||||
purpose: "Invite users who don't yet have an account to sign up",
|
||||
purpose: 'Invite someone to create an account',
|
||||
properties: {
|
||||
MAILER_SUBJECTS_INVITE: { title: 'Subject', type: 'string' },
|
||||
MAILER_TEMPLATES_INVITE_CONTENT: { title: 'Body', type: 'code' },
|
||||
},
|
||||
variables: [
|
||||
TemplateVariables.ConfirmationURL,
|
||||
{
|
||||
...TemplateVariables.ConfirmationURL,
|
||||
description: 'URL to accept the invitation for creating an account',
|
||||
},
|
||||
TemplateVariables.Token,
|
||||
TemplateVariables.TokenHash,
|
||||
TemplateVariables.SiteURL,
|
||||
@@ -142,7 +145,10 @@ const MAGIC_LINK: AuthTemplate = {
|
||||
MAILER_TEMPLATES_MAGIC_LINK_CONTENT: { title: 'Body', type: 'code' },
|
||||
},
|
||||
variables: [
|
||||
TemplateVariables.ConfirmationURL,
|
||||
{
|
||||
...TemplateVariables.ConfirmationURL,
|
||||
description: "URL for a one-time sign-in to the user's account",
|
||||
},
|
||||
TemplateVariables.Token,
|
||||
TemplateVariables.TokenHash,
|
||||
TemplateVariables.SiteURL,
|
||||
@@ -168,7 +174,10 @@ const EMAIL_CHANGE: AuthTemplate = {
|
||||
MAILER_TEMPLATES_EMAIL_CHANGE_CONTENT: { title: 'Body', type: 'code' },
|
||||
},
|
||||
variables: [
|
||||
TemplateVariables.ConfirmationURL,
|
||||
{
|
||||
...TemplateVariables.ConfirmationURL,
|
||||
description: 'URL to confirm the change of email address',
|
||||
},
|
||||
TemplateVariables.Token,
|
||||
TemplateVariables.TokenHash,
|
||||
TemplateVariables.SiteURL,
|
||||
@@ -189,13 +198,16 @@ const RECOVERY: AuthTemplate = {
|
||||
id: 'RECOVERY',
|
||||
type: 'object',
|
||||
title: 'Reset password',
|
||||
purpose: 'Allow users to reset their password if they forget it',
|
||||
purpose: 'Send a password reset link or code',
|
||||
properties: {
|
||||
MAILER_SUBJECTS_RECOVERY: { title: 'Subject', type: 'string' },
|
||||
MAILER_TEMPLATES_RECOVERY_CONTENT: { title: 'Body', type: 'code' },
|
||||
},
|
||||
variables: [
|
||||
TemplateVariables.ConfirmationURL,
|
||||
{
|
||||
...TemplateVariables.ConfirmationURL,
|
||||
description: 'URL for resetting the account password',
|
||||
},
|
||||
TemplateVariables.Token,
|
||||
TemplateVariables.TokenHash,
|
||||
TemplateVariables.SiteURL,
|
||||
@@ -215,7 +227,7 @@ const REAUTHENTICATION: AuthTemplate = {
|
||||
id: 'REAUTHENTICATION',
|
||||
type: 'object',
|
||||
title: 'Reauthentication',
|
||||
purpose: 'Ask users to re-authenticate before performing a sensitive action',
|
||||
purpose: 'Ask users to verify their identity before a sensitive operation',
|
||||
properties: {
|
||||
MAILER_SUBJECTS_REAUTHENTICATION: { title: 'Subject', type: 'string' },
|
||||
MAILER_TEMPLATES_REAUTHENTICATION_CONTENT: { title: 'Body', type: 'code' },
|
||||
@@ -297,8 +309,8 @@ const PHONE_CHANGED_NOTIFICATION: AuthTemplate = {
|
||||
const IDENTITY_LINKED_NOTIFICATION: AuthTemplate = {
|
||||
id: 'IDENTITY_LINKED_NOTIFICATION',
|
||||
type: 'object',
|
||||
title: 'Identity linked',
|
||||
purpose: 'Notify users when a new identity has been linked to their account',
|
||||
title: 'Sign-in method linked',
|
||||
purpose: 'Notify users when a sign-in method has been linked to their account',
|
||||
properties: {
|
||||
MAILER_SUBJECTS_IDENTITY_LINKED_NOTIFICATION: { title: 'Subject', type: 'string' },
|
||||
MAILER_TEMPLATES_IDENTITY_LINKED_NOTIFICATION_CONTENT: { title: 'Body', type: 'code' },
|
||||
@@ -315,8 +327,8 @@ const IDENTITY_LINKED_NOTIFICATION: AuthTemplate = {
|
||||
const IDENTITY_UNLINKED_NOTIFICATION: AuthTemplate = {
|
||||
id: 'IDENTITY_UNLINKED_NOTIFICATION',
|
||||
type: 'object',
|
||||
title: 'Identity unlinked',
|
||||
purpose: 'Notify users when an identity has been unlinked from their account',
|
||||
title: 'Sign-in method removed',
|
||||
purpose: 'Notify users when a sign-in method has been removed from their account',
|
||||
properties: {
|
||||
MAILER_SUBJECTS_IDENTITY_UNLINKED_NOTIFICATION: { title: 'Subject', type: 'string' },
|
||||
MAILER_TEMPLATES_IDENTITY_UNLINKED_NOTIFICATION_CONTENT: { title: 'Body', type: 'code' },
|
||||
|
||||
@@ -408,7 +408,7 @@ export const RateLimits = () => {
|
||||
<FormItemLayout
|
||||
layout="flex-row-reverse"
|
||||
label="Rate limit for token verifications"
|
||||
description="Number of OTP/Magic link verifications that can be made in a 5 minute interval per IP address"
|
||||
description="Number of OTP and magic link verifications that can be made in a 5 minute interval per IP address"
|
||||
>
|
||||
<Tooltip>
|
||||
<TooltipTrigger asChild>
|
||||
|
||||
@@ -316,10 +316,10 @@ export const UserOverview = ({ user, onDeleteSuccess }: UserOverviewProps) => {
|
||||
}
|
||||
/>
|
||||
<RowAction
|
||||
title={isVerified ? 'Send Magic Link' : 'Send confirmation email'}
|
||||
title={isVerified ? 'Send magic link' : 'Send confirmation email'}
|
||||
description={
|
||||
isVerified
|
||||
? 'Passwordless login via email for the user'
|
||||
? 'Send a passwordless magic link to the user'
|
||||
: 'Send a confirmation email to the user'
|
||||
}
|
||||
button={{
|
||||
|
||||
@@ -88,7 +88,7 @@ export const UserManagement = ({ selectedLang, showApiKey }: UserManagementProps
|
||||
/>
|
||||
|
||||
<DocSection
|
||||
title="Log in with Magic Link via Email"
|
||||
title="Sign in with magic link"
|
||||
content={
|
||||
<>
|
||||
<p>Send a user a passwordless link which they can use to redeem an access_token.</p>
|
||||
|
||||
@@ -121,7 +121,7 @@ curl -X POST '${endpoint}/auth/v1/token?grant_type=password' \\
|
||||
magicLinkLogin: {
|
||||
key: 'magic-link-login',
|
||||
category: API_DOCS_CATEGORIES.USER_MANAGEMENT,
|
||||
title: `Log in with Magic Link via Email`,
|
||||
title: `Sign in with magic link`,
|
||||
description: `
|
||||
Send a user a passwordless link which they can use to redeem an access_token.
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ export const useUserSendOTPMutation = ({
|
||||
},
|
||||
async onError(data, variables, context) {
|
||||
if (onError === undefined) {
|
||||
toast.error(`Failed to send magic link: ${data.message}`)
|
||||
toast.error(`Failed to send OTP: ${data.message}`)
|
||||
} else {
|
||||
onError(data, variables, context)
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ const AuthUsage = () => {
|
||||
{ label: 'SAML', value: 'saml' },
|
||||
{ label: 'Recovery', value: 'recovery' },
|
||||
{ label: 'SSO/SAML', value: 'sso/saml' },
|
||||
{ label: 'Magic Link', value: 'magiclink' },
|
||||
{ label: 'Magic link', value: 'magiclink' },
|
||||
{ label: 'Keycloak', value: 'keycloak' },
|
||||
{ label: 'Facebook', value: 'facebook' },
|
||||
{ label: 'Twitch', value: 'twitch' },
|
||||
|
||||
@@ -40,13 +40,13 @@ NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=
|
||||
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>
|
||||
<h2>Confirm your email address</h2>
|
||||
|
||||
<p>Follow this link to confirm your user:</p>
|
||||
<p>Follow the link below to confirm this email address and finish signing up.</p>
|
||||
<p>
|
||||
<a
|
||||
href="{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=email&next={{ .RedirectTo }}"
|
||||
>Confirm your email</a
|
||||
>Confirm email address</a
|
||||
>
|
||||
</p>
|
||||
```
|
||||
@@ -56,13 +56,13 @@ NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=
|
||||
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>
|
||||
<h2>Reset your password</h2>
|
||||
|
||||
<p>Follow this link to reset the password for your user:</p>
|
||||
<p>We received a request to reset your password. Follow the link below to choose a new one.</p>
|
||||
<p>
|
||||
<a
|
||||
href="{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=recovery&next={{ .RedirectTo }}"
|
||||
>Reset Password</a
|
||||
>Reset password</a
|
||||
>
|
||||
</p>
|
||||
```
|
||||
@@ -76,7 +76,7 @@ NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=
|
||||
|
||||
<Callout type="info">
|
||||
|
||||
You can use this block with the Pages router by simply moving the routes from the `app` folder into the `pages` folder and renaming them. Example instead of `app/sign-up/page.tsx`, you'd create a `pages/sign-up.tsx` file.
|
||||
You can use this block with the Pages router by moving the routes from the `app` folder into the `pages` folder and renaming them. Example instead of `app/sign-up/page.tsx`, you'd create a `pages/sign-up.tsx` file.
|
||||
|
||||
</Callout>
|
||||
|
||||
|
||||
@@ -40,13 +40,13 @@ NUXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=
|
||||
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>
|
||||
<h2>Confirm your email address</h2>
|
||||
|
||||
<p>Follow this link to confirm your user:</p>
|
||||
<p>Follow the link below to confirm this email address and finish signing up.</p>
|
||||
<p>
|
||||
<a
|
||||
href="{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=email&next={{ .RedirectTo }}"
|
||||
>Confirm your email</a
|
||||
>Confirm email address</a
|
||||
>
|
||||
</p>
|
||||
```
|
||||
@@ -56,13 +56,13 @@ NUXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=
|
||||
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>
|
||||
<h2>Reset your password</h2>
|
||||
|
||||
<p>Follow this link to reset the password for your user:</p>
|
||||
<p>We received a request to reset your password. Follow the link below to choose a new one.</p>
|
||||
<p>
|
||||
<a
|
||||
href="{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=recovery&next={{ .RedirectTo }}"
|
||||
>Reset Password</a
|
||||
>Reset password</a
|
||||
>
|
||||
</p>
|
||||
```
|
||||
|
||||
@@ -40,13 +40,13 @@ VITE_SUPABASE_PUBLISHABLE_KEY=
|
||||
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>
|
||||
<h2>Confirm your email address</h2>
|
||||
|
||||
<p>Follow this link to confirm your user:</p>
|
||||
<p>Follow the link below to confirm this email address and finish signing up.</p>
|
||||
<p>
|
||||
<a
|
||||
href="{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=email&next={{ .RedirectTo }}"
|
||||
>Confirm your email</a
|
||||
>Confirm email address</a
|
||||
>
|
||||
</p>
|
||||
```
|
||||
@@ -56,13 +56,13 @@ VITE_SUPABASE_PUBLISHABLE_KEY=
|
||||
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>
|
||||
<h2>Reset your password</h2>
|
||||
|
||||
<p>Follow this link to reset the password for your user:</p>
|
||||
<p>We received a request to reset your password. Follow the link below to choose a new one.</p>
|
||||
<p>
|
||||
<a
|
||||
href="{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=recovery&next={{ .RedirectTo }}"
|
||||
>Reset Password</a
|
||||
>Reset password</a
|
||||
>
|
||||
</p>
|
||||
```
|
||||
|
||||
@@ -37,13 +37,13 @@ VITE_SUPABASE_PUBLISHABLE_KEY=
|
||||
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>
|
||||
<h2>Confirm your email address</h2>
|
||||
|
||||
<p>Follow this link to confirm your user:</p>
|
||||
<p>Follow the link below to confirm this email address and finish signing up.</p>
|
||||
<p>
|
||||
<a
|
||||
href="{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=email&next={{ .RedirectTo }}"
|
||||
>Confirm your email</a
|
||||
>Confirm email address</a
|
||||
>
|
||||
</p>
|
||||
```
|
||||
@@ -53,13 +53,13 @@ VITE_SUPABASE_PUBLISHABLE_KEY=
|
||||
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>
|
||||
<h2>Reset your password</h2>
|
||||
|
||||
<p>Follow this link to reset the password for your user:</p>
|
||||
<p>We received a request to reset your password. Follow the link below to choose a new one.</p>
|
||||
<p>
|
||||
<a
|
||||
href="{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=recovery&next={{ .RedirectTo }}"
|
||||
>Reset Password</a
|
||||
>Reset password</a
|
||||
>
|
||||
</p>
|
||||
```
|
||||
|
||||
Reference in new issue
Block a user