Wszystkie artykuły
Użycie PortPreview z Express.js do tuneli HTTPS, webhooków i OAuth
dev stacksExpress.jsNode.jslocal developmentlocalhost tunneling

Jak używać PortPreview z aplikacją Express.js

Aby używać PortPreview z aplikacją Express.js, nasłuchuj na 0.0.0.0 (lub app.listen(PORT) bez wiązania tylko z hostem lokalnym), uruchom npx portpreview PORT i zarejestruj adres URL HTTPS dla webhooków, wywołań zwrotnych OAuth i wersji demonstracyjnych API.

Dlaczego tunel Express

Express pozostaje domyślną warstwą HTTP dla interfejsów Node API i BFF. Dostawcy płatności, webhooki CRM i serwery OAuth potrzebują publicznego punktu końcowego HTTPS podczas lokalnego debugowania kolejności oprogramowania pośredniego i analizowania surowej treści.

  • Webhooki. Montuj express.raw() na ścieżkach webhooków przed express.json(). Szczegóły w Express webhook local testing.
  • OAuth. Ustaw identyfikatory URI przekierowania na początek tunelu. Zobacz OAuth callback testing.
  • Udostępnianie interfejsów API. Pozwól zespołom mobilnym lub frontendowym korzystać z lokalnego interfejsu API bez VPN. Zobacz share local dev server.

Szybki start

  1. Uruchom Express: node server.js lub npm run dev na porcie 3000.
  2. Uruchom npx portpreview 3000.
  3. Test GET https://your-tunnel.portpreview.dev/health.
  4. Skonfiguruj webhooki dostawcy na POST https://your-tunnel.portpreview.dev/api/webhooks/....

Serwer 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 domyślnie nasłuchuje na wszystkich interfejsach. Jeśli wiążesz się jawnie, użyj '0.0.0.0', aby proces tunelowania mógł przekazywać ruch.

Ufaj nagłówkom proxy

Za PortPreview Twoja aplikacja widzi X-Forwarded-Proto: https. Włącz zaufany serwer proxy podczas generowania bezwzględnych adresów URL lub bezpiecznych plików cookie:

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

CORS dla podzielonych frontendów

Jeśli serwer deweloperski React lub Vue na innym porcie wywołuje Twoje API Express przez osobne tunele, skonfiguruj CORS jawnie:

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

Lista kontrolna bezpieczeństwa

  • Sprawdź podpisy webhooków przed analizą JSON.
  • Nigdy nie ujawniaj nieuwierzytelnionych tras administracyjnych we współdzielonym tunelu.
  • Zatrzymaj tunel po zakończeniu. Zobacz tunnel security.

Express documentation obejmuje oprogramowanie pośredniczące i routing. Start PortPreview free.

Najczęściej zadawane pytania

Jak udostępnić serwer deweloperski Express.js za pomocą PortPreview?
Uruchom aplikację Express.js na hoście lokalnym (zwykle port 3000), a następnie uruchom npx portpreview 3000 w innym terminalu. Użyj adresu URL HTTPS dla webhooków, przekierowań OAuth i udostępniania.
Czy mogę przetestować wywołania zwrotne OAuth na hoście lokalnym za pomocą Express.js?
Dostawcy zewnętrzni wymagają publicznego identyfikatora URI przekierowania HTTPS. Zarejestruj adres URL tunelu PortPreview jako wywołanie zwrotne podczas programowania zamiast http://localhost.
Jaki jest najczęstszy błąd tunelowania Express.js?
Montowanie express.json() przed trasami webhooka zużywa surową treść. Zastosuj funkcję express.raw() tylko na ścieżkach elementu webhook przed globalnym oprogramowaniem pośredniczącym JSON.
Czy udostępnianie adresu URL tunelu Express.js jest bezpieczne?
Traktuj adresy URL tuneli jak tymczasowe poświadczenia. Udostępniaj tylko zaufanym współpracownikom, wyłączaj po zakończeniu i nigdy nie ujawniaj tras administratora bez uwierzytelnienia. Zobacz najlepsze praktyki dotyczące bezpieczeństwa tunelu localhost.