Tous les articles
Utiliser PortPreview avec Express.js pour tunnels HTTPS, webhooks et OAuth
dev stacksExpress.jsNode.jslocal developmentlocalhost tunneling

Comment utiliser PortPreview avec une application Express.js

Pour utiliser PortPreview avec une application Express.js, écoutez sur 0.0.0.0 (ou app.listen(PORT) sans liaison avec localhost uniquement), exécutez npx portpreview PORT et enregistrez l'URL HTTPS pour les webhooks, les rappels OAuth et les démos d'API.

Pourquoi tunnel Express

Express reste la couche HTTP par défaut pour les API Node et les BFF. Les fournisseurs de paiement, les webhooks CRM et les serveurs OAuth ont besoin d'un point de terminaison HTTPS public pendant que vous déboguez localement l'ordre du middleware et l'analyse du corps brut.

Démarrage rapide

  1. Démarrez Express : node server.js ou npm run dev sur le port 3000.
  2. Exécutez npx portpreview 3000.
  3. Testez GET https://your-tunnel.portpreview.dev/health.
  4. Configurez les webhooks du fournisseur sur POST https://your-tunnel.portpreview.dev/api/webhooks/....

Serveur Minimal Express

import express from 'express';

const app = express();
const PORT = process.env.PORT ?? 3000;

app.get('/health', (_req, res) => res.json({ ok: true }));

app.listen(PORT, () => {
  console.log(`Listening on http://localhost:${PORT}`);
});

Express écoute sur toutes les interfaces par défaut. Si vous effectuez une liaison explicite, utilisez '0.0.0.0' pour que le processus du tunnel puisse transférer le trafic.

En-têtes de proxy de confiance

Derrière PortPreview, votre application voit X-Forwarded-Proto: https. Activez le proxy de confiance lors de la génération d'URL absolues ou de cookies sécurisés :

app.set('trust proxy', 1);

CORS pour les frontends divisés

Si un serveur de développement React ou Vue sur un autre port appelle votre API Express via des tunnels séparés, configurez CORS explicitement :

import cors from 'cors';
app.use(cors({ origin: process.env.FRONTEND_TUNNEL_URL }));

Liste de contrôle de sécurité

  • Vérifiez les signatures des webhooks avant d'analyser JSON.
  • N'exposez jamais les routes d'administration non authentifiées sur un tunnel partagé.
  • Arrêtez le tunnel lorsque vous avez terminé. Voir tunnel security.

Express documentation couvre le middleware et le routage. Start PortPreview free.

Questions fréquentes

Comment exposer un serveur de développement Express.js avec PortPreview ?
Démarrez votre application Express.js sur localhost (généralement le port 3000), puis exécutez npx portpreview 3000 dans un autre terminal. Utilisez l'URL HTTPS pour les webhooks, les redirections OAuth et le partage.
Puis-je tester les rappels OAuth sur localhost avec Express.js ?
Les fournisseurs externes nécessitent un URI de redirection HTTPS public. Enregistrez l'URL de votre tunnel PortPreview comme rappel pendant le développement au lieu de http://localhost.
Quelle est l’erreur de tunneling Express.js la plus courante ?
Le montage de express.json() avant les routes webhook consomme le corps brut. Appliquez express.raw() uniquement sur les chemins de webhook avant le middleware JSON global.
Est-il sûr de partager une URL de tunnel Express.js ?
Traitez les URL de tunnel comme des informations d'identification temporaires. Partagez uniquement avec des collaborateurs de confiance, désactivez-le une fois terminé et n'exposez jamais les routes d'administration sans authentification. Consultez les meilleures pratiques en matière de sécurité du tunnel localhost.