diff --git a/app/api/auth/resend-verification/route.ts b/app/api/auth/resend-verification/route.ts
new file mode 100644
index 0000000..94521ee
--- /dev/null
+++ b/app/api/auth/resend-verification/route.ts
@@ -0,0 +1,98 @@
+import { NextRequest, NextResponse } from 'next/server';
+import prisma from '@/lib/prisma';
+import crypto from 'crypto';
+
+export async function POST(request: NextRequest) {
+ try {
+ const { email } = await request.json();
+
+ if (!email) {
+ return NextResponse.json(
+ { error: 'Email requis' },
+ { status: 400 }
+ );
+ }
+
+ // Find user
+ const user = await prisma.user.findUnique({
+ where: { email }
+ });
+
+ if (!user) {
+ // For security, same message even if user doesn't exist
+ return NextResponse.json(
+ { message: 'Si un compte existe pour cet email et n\'est pas encore vérifié, un nouvel email de vérification a été envoyé.' },
+ { status: 200 }
+ );
+ }
+
+ if (user.emailVerified) {
+ return NextResponse.json(
+ { error: 'Ce compte est déjà vérifié.' },
+ { status: 400 }
+ );
+ }
+
+ // Generate new verification token
+ const verificationToken = crypto.randomBytes(32).toString('hex');
+
+ // Update user with new token
+ await prisma.user.update({
+ where: { id: user.id },
+ data: { verificationToken }
+ });
+
+ // Send verification email
+ try {
+ const settings = await prisma.siteSetting.findUnique({
+ where: { id: 'singleton' }
+ });
+
+ const siteName = settings?.siteName || 'Afrohub';
+ const subject = settings?.verifyEmailSubject || 'Vérification de votre compte - Afrohub';
+ const verifyUrl = `${process.env.NEXT_PUBLIC_APP_URL || 'http://localhost:3000'}/api/auth/verify?token=${verificationToken}`;
+
+ let html = settings?.verifyEmailTemplate || `
+
+
{siteName}
+
Bonjour {name},
+
Vous avez demandé le renvoi de l'email de vérification pour votre compte sur {siteName}. Veuillez vérifier votre adresse email en cliquant sur le bouton ci-dessous :