Files
triqura-ecd/docs/emails/confirm-signup.html
colinislit 2505b27437 feat: add duplicate email detection via auth hook with fallback
- Add before-user-created hook function for server-side duplicate email detection
- Implement fallback detection using identities array check (Supabase limitation)
- Update signUpWithPassword to detect duplicate emails via hook errors or empty identities
- Add error handling in login page to show duplicate email errors and auto-switch to login mode
- Add auth hook setup documentation and test scripts
- Add password reset and update password flows
- Add email templates for signup confirmation and password reset
2025-11-19 11:03:46 +01:00

98 lines
4.3 KiB
HTML

<!DOCTYPE html>
<html lang="nl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Bevestig je account - AI Speedrun</title>
<!--[if mso]>
<style type="text/css">
body, table, td {font-family: Arial, sans-serif !important;}
</style>
<![endif]-->
</head>
<body style="margin: 0; padding: 0; background-color: #F8FAFC; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;">
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #F8FAFC;">
<tr>
<td align="center" style="padding: 40px 20px;">
<!-- Main Container -->
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="max-width: 600px; background-color: #FFFFFF; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.1);">
<!-- Header -->
<tr>
<td style="padding: 40px 40px 30px; text-align: center; border-bottom: 1px solid #E2E8F0;">
<h1 style="margin: 0; font-size: 24px; font-weight: 600; color: #0F172A; line-height: 1.3;">
Welkom bij AI Speedrun
</h1>
</td>
</tr>
<!-- Content -->
<tr>
<td style="padding: 40px 40px 30px;">
<p style="margin: 0 0 20px; font-size: 16px; line-height: 1.6; color: #475569;">
Leuk dat je meekijkt met deze speedrun!
</p>
<p style="margin: 0 0 30px; font-size: 16px; line-height: 1.6; color: #475569;">
Klik op de onderstaande knop om je emailadres te bevestigen en je account te activeren:
</p>
<!-- CTA Button -->
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td align="center" style="padding: 0 0 30px;">
<a href="{{ .ConfirmationURL }}" style="display: inline-block; padding: 14px 32px; background-color: #0D9488; color: #FFFFFF; text-decoration: none; border-radius: 6px; font-weight: 500; font-size: 16px; line-height: 1.5;">
Bevestig je account
</a>
</td>
</tr>
</table>
<!-- Alternative Link -->
<p style="margin: 0 0 20px; font-size: 14px; line-height: 1.6; color: #64748B;">
Werkt de knop niet? Kopieer en plak deze link in je browser:
</p>
<p style="margin: 0 0 30px; font-size: 12px; line-height: 1.6; color: #0D9488; word-break: break-all;">
{{ .ConfirmationURL }}
</p>
<!-- Security Note -->
<div style="padding: 16px; background-color: #F0FDFA; border-left: 3px solid #0D9488; border-radius: 4px;">
<p style="margin: 0; font-size: 14px; line-height: 1.6; color: #0F766E;">
<strong>Beveiliging:</strong> Deze link is 24 uur geldig. Als je deze email niet hebt aangevraagd, kun je deze negeren.
</p>
</div>
</td>
</tr>
<!-- Footer -->
<tr>
<td style="padding: 30px 40px 40px; text-align: center; border-top: 1px solid #E2E8F0; background-color: #F8FAFC;">
<p style="margin: 0; font-size: 12px; line-height: 1.6; color: #94A3B8;">
AI Speedrun - Software on Demand<br>
Build in Public door <a href="https://ikbenlit.nl" style="color: #0D9488; text-decoration: none;">AI Speedrun</a>
</p>
</td>
</tr>
</table>
<!-- Bottom Spacing -->
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="max-width: 600px;">
<tr>
<td style="padding: 20px 0; text-align: center;">
<p style="margin: 0; font-size: 11px; line-height: 1.5; color: #94A3B8;">
Je ontvangt deze email omdat je je hebt geregistreerd voor AI Speedrun.
</p>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>