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
This commit is contained in:
@@ -18,9 +18,18 @@ export async function GET(request: NextRequest) {
|
||||
const supabase = await createClient()
|
||||
|
||||
// Exchange code for session
|
||||
const { error } = await supabase.auth.exchangeCodeForSession(code)
|
||||
const { data, error } = await supabase.auth.exchangeCodeForSession(code)
|
||||
|
||||
if (!error && data.user) {
|
||||
// Check if new user (first login)
|
||||
const isNewUser = new Date(data.user.created_at).getTime() ===
|
||||
new Date(data.user.last_sign_in_at || '').getTime()
|
||||
|
||||
if (isNewUser) {
|
||||
// Redirect new users to set-password page
|
||||
return NextResponse.redirect(new URL('/set-password', request.url))
|
||||
}
|
||||
|
||||
if (!error) {
|
||||
// Redirect to the specified next URL or default to /clients
|
||||
return NextResponse.redirect(new URL(next, request.url))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user