Tất cả bài viết
Dùng PortPreview với Express.js cho tunnel HTTPS, webhook và OAuth
dev stacksExpress.jsNode.jslocal developmentlocalhost tunneling

Cách sử dụng PortPreview với ứng dụng Express.js

Để sử dụng PortPreview với ứng dụng Express.js, hãy nghe trên 0.0.0.0 (hoặc app.listen(PORT) mà không ràng buộc chỉ với localhost), chạy npx portpreview PORT và đăng ký URL HTTPS cho webhook, lệnh gọi lại OAuth và bản trình diễn API.

Tại sao lại là đường hầm Express

Express vẫn là lớp HTTP mặc định cho Node API và BFF. Các nhà cung cấp thanh toán, webhook CRM và máy chủ OAuth cần có điểm cuối HTTPS công khai trong khi bạn gỡ lỗi thứ tự phần mềm trung gian và phân tích cú pháp nội dung thô cục bộ.

  • Webhooks. Gắn express.raw() trên đường dẫn webhook trước express.json(). Chi tiết trong Express webhook local testing.
  • OAuth. Đặt URI chuyển hướng về gốc đường hầm của bạn. Xem OAuth callback testing.
  • Chia sẻ API. Hãy để các nhóm di động hoặc giao diện người dùng tiếp cận API cục bộ của bạn mà không cần VPN. Xem share local dev server.

Bắt đầu nhanh

  1. Khởi động nhanh: node server.js hoặc npm run dev trên cổng 3000.
  2. Chạy npx portpreview 3000.
  3. Kiểm tra GET https://your-tunnel.portpreview.dev/health.
  4. Định cấu hình webhooks của nhà cung cấp thành POST https://your-tunnel.portpreview.dev/api/webhooks/....

Máy chủ tốc hành tối thiểu

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 theo mặc định lắng nghe trên tất cả các giao diện. Nếu bạn liên kết rõ ràng, hãy sử dụng '0.0.0.0' để quá trình đường hầm có thể chuyển tiếp lưu lượng truy cập.

Tiêu đề proxy đáng tin cậy

Phía sau PortPreview, ứng dụng của bạn sẽ thấy X-Forwarded-Proto: https. Bật proxy tin cậy khi tạo URL tuyệt đối hoặc cookie bảo mật:

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

CORS dành cho giao diện người dùng được phân chia

Nếu máy chủ React hoặc Vue dev trên một cổng khác gọi API Express của bạn thông qua các đường hầm riêng biệt, hãy định cấu hình CORS một cách rõ ràng:

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

Danh sách kiểm tra bảo mật

  • Xác minh chữ ký webhook trước khi phân tích cú pháp JSON.
  • Không bao giờ tiết lộ các tuyến quản trị chưa được xác thực trên đường hầm chung.
  • Dừng đường hầm khi hoàn thành. Xem tunnel security.

Express documentation bao gồm phần mềm trung gian và định tuyến. Start PortPreview free.

Câu hỏi thường gặp

Làm cách nào để hiển thị máy chủ phát triển Express.js bằng PortPreview?
Khởi động ứng dụng Express.js của bạn trên localhost (thường là cổng 3000), sau đó chạy npx portpreview 3000 trong một thiết bị đầu cuối khác. Sử dụng URL HTTPS cho webhook, chuyển hướng OAuth và chia sẻ.
Tôi có thể kiểm tra lệnh gọi lại OAuth trên localhost bằng Express.js không?
Các nhà cung cấp bên ngoài yêu cầu URI chuyển hướng HTTPS công khai. Đăng ký URL đường hầm PortPreview của bạn làm lệnh gọi lại trong quá trình phát triển thay vì http://localhost.
Lỗi đường hầm Express.js phổ biến nhất là gì?
Gắn express.json() trước khi các tuyến webhook sử dụng phần thân thô. Chỉ áp dụng express.raw() trên các đường dẫn webhook trước phần mềm trung gian JSON toàn cầu.
Có an toàn khi chia sẻ URL đường hầm Express.js không?
Hãy coi các URL đường hầm như thông tin xác thực tạm thời. Chỉ chia sẻ với những cộng tác viên đáng tin cậy, tắt khi hoàn tất và không bao giờ tiết lộ các tuyến quản trị mà không xác thực. Xem các phương pháp hay nhất về bảo mật đường hầm localhost.