Rust WebRTC P2P #15 - Demo Login + WebSocket Auth từ Postman
Bài 155:12

Rust WebRTC P2P #15 - Demo Login + WebSocket Auth từ Postman

Trong phần 15 này, chúng ta thực hiện demo toàn bộ quy trình xác thực đã xây dựng ở các phần trước. Sử dụng Postman để mô phỏng client, chúng ta sẽ kiểm tra cách server xử lý token thông qua cả HTTP và WebSocket.

1. Nội dung chính trong video:

  • Demo HTTP Login: Kiểm tra flow đăng nhập, từ việc gọi LoginService để xác thực user trong database đến việc kiểm tra mật khẩu. Quan sát cách server trả về JWT token thông qua response body và header Set-Cookie.

  • Kiểm tra Auth Middleware: Sử dụng cookie nhận được từ bước login để gọi API get_me. Xác nhận middleware có thể bóc tách thông tin user từ request và xử lý chính xác.

  • Xác thực WebSocket: Thử nghiệm kết nối WebSocket và quan sát cơ chế tự động ngắt kết nối nếu không xác thực trong thời gian quy định. Thực hiện xác thực bằng cách gửi cookie trực tiếp trong header ngay từ bước handshake, giúp server nhận diện user mà không cần gửi message auth riêng.

  • Theo dõi Server Logs: Kiểm tra log để xác nhận trạng thái authenticate thành công và cách server xử lý các message dựa trên cmd.

2. Kết quả đạt được:

Sau phần này, bạn đã hoàn thiện toàn bộ hệ thống xác thực cho cả HTTP và WebSocket. Đây là nền tảng quan trọng để bước sang giai đoạn tiếp theo: xây dựng signaling giữa hai browser trong WebRTC.

Khóa học thực chiến giúp bạn xây dựng từ đầu một Signaling Server bằng Rust, xử lý các cuộc gọi audio/video trực tiếp giữa hai trình duyệt thông qua WebRTC Peer-to-Peer mà không cần Media Server. Bạn sẽ nắm vững kiến trúc WebRTC signaling, cách trao đổi SDP Offer/Answer và ICE Candidates giữa các peer thông qua WebSocket. Khóa học sử dụng Axum + Tokio cho backend, MongoDB để lưu trữ dữ liệu, và JWT để xác thực người dùng. Đây là Phần 1 trong series 7 phần về Lập trình Rust với VoIP, bao gồm: WebRTC P2P, Media Server (Janus, LiveKit, Kurento, Asterisk, FreePBX), và hệ thống CRM/Queue/nhạc chờ/chuyển tiếp cuộc gọi. Yêu cầu tiên quyết: Kiến thức cơ bản về Rust (Ownership, Lifetimes, Traits, Async/Await).

Công nghệ sử dụng

RustWebRTCVoIPP2PAxumTokioWebSocketMongoDBJWT

Tác giả

ByteBuffer

ByteBuffer

Coder cỏ tại DTS Group và IPA Solutions

Chuyên gia về Rust và hệ thống VoIP/WebRTC. Nhiều năm kinh nghiệm xây dựng các hệ thống real-time communication với hiệu năng cao và độ trễ thấp.