Bỏ qua và đến nội dung
Nhat Nguyen (Nate)

2024–2025

Xác thực hai lớp cho CRM đại lý

Vexere.com · Full-stack Developer · Giữ xác thực danh tính 99% cho hàng trăm user AMS

Node.jsAngularJSRedisAWS

Vấn đề

Agent Management System là CRM đại lý và vận hành dùng cho booking, cấu hình thanh toán và dữ liệu khách. Chỉ cần mật khẩu là vào được. Cần thêm một lớp xác thực mà không làm đăng nhập hàng ngày mệt.

Phần tôi làm

UI đăng nhập nhiều bước và OTP API: tạo mã, xác thực, nhớ thiết bị, và thu hồi tin cậy thiết bị.

Kiến trúc

Đăng nhập không còn cấp session đầy đủ chỉ với mật khẩu. API trả token tạm, rồi OTP 6 số gửi SMS hoặc email. Redis giữ mã với TTL 30 phút, hết hạn không cần ghi database.

OTP email chỉ dành cho đối tác B2B quốc tế; hầu hết đại lý chỉ nhận SMS. "Nhớ thiết bị này" lưu token ngẫu nhiên kèm fingerprint User-Agent trên Redis. Token bị đánh cắp dùng trên browser khác trượt fingerprint và bị thu hồi.

UI là state machine có chặn: đăng nhập, chọn kênh, nhập OTP, rồi dashboard. Không nhảy cóc được.

Kết quả

Xác thực danh tính giữ 99%+ cho user doanh nghiệp của line này. User thường không bị hỏi OTP mỗi ngày từ laptop đã tin cậy.