Retour à la leçonMission
Mission : le webhook Stripe qui accepte n'importe quoi
Sécuriser un Route Handler POST en validant son payload et choisir correctement entre Server Action et Route Handler.
Commandes qui pourraient t’être utiles
idContexte
app/api/products/route.ts expose un POST qui fait directement db.insert("products").values(body) sans jamais vérifier le contenu de body — un client pourrait envoyer un champ id ou ownerId arbitraire. Par ailleurs, un développeur hésite : pour un webhook Stripe qui doit notifier l'app d'un paiement confirmé, doit-il écrire une Server Action ou un Route Handler ?
