espace-paie-odentas/FIX_OTP_EMAIL_LINKS.md
2025-10-12 17:05:46 +02:00

73 lines
No EOL
2 KiB
Markdown

# 🔧 Fix OTP Email Links - Guide Rapide
## Problème
Les emails OTP reçus contiennent des liens vers `localhost:3000` au lieu de votre domaine Vercel.
## ✅ Solution Implémentée
### 1. Code Corrigé ✅
Le fichier `app/api/auth/send-code/route.ts` a été mis à jour pour détecter automatiquement l'URL correcte :
```typescript
// Détecter automatiquement l'URL de base selon l'environnement
const getBaseUrl = () => {
// En production, utiliser l'URL Vercel ou le domaine custom
if (process.env.VERCEL_URL) {
return `https://${process.env.VERCEL_URL}`;
}
// Fallback vers variable d'environnement personnalisée
if (process.env.NEXT_PUBLIC_SITE_URL) {
return process.env.NEXT_PUBLIC_SITE_URL;
}
// En développement local
return "http://localhost:3000";
};
```
## 🚀 Actions à Faire MAINTENANT
### 1. Variables Vercel (URGENT)
Ajoutez cette variable dans votre dashboard Vercel :
```bash
# Settings → Environment Variables → Production
NEXT_PUBLIC_SITE_URL=https://votre-app.vercel.app
```
### 2. Configuration Supabase (URGENT)
Dans Supabase Dashboard → Authentication → URL Configuration :
```bash
Site URL: https://votre-app.vercel.app
Additional Redirect URLs:
- https://votre-app.vercel.app/**
- https://votre-domaine-custom.com/** (si vous en avez un)
- http://localhost:3000/** (pour le dev)
```
### 3. Template Email Supabase (OPTIONNEL)
Dans Supabase → Authentication → Email Templates → Confirm signup :
Remplacez :
```html
{{ .ConfirmationURL }}
```
Par votre domaine :
```html
https://votre-app.vercel.app/auth/callback?token_hash={{ .TokenHash }}&type=magiclink
```
## ⚡ Test Rapide
1. **Déployez** le code corrigé sur Vercel
2. **Ajoutez** la variable `NEXT_PUBLIC_SITE_URL`
3. **Configurez** les URLs dans Supabase
4. **Testez** l'OTP sur votre site Vercel
## 🎯 Résultat
✅ Les emails OTP contiendront désormais des liens vers votre domaine Vercel, pas localhost.
---
**Temps estimé :** 5 minutes de configuration + 2 minutes de déploiement = **7 minutes total**