4 điểm bởi choigeon0501 9 giờ trước | 5 bình luận | Chia sẻ qua WhatsApp

Đây là API xác thực điện thoại được tạo ra bằng cách đảo ngược hướng đi, vì mỗi lần gắn xác thực danh tính khi đăng ký thành viên cho dịch vụ thì chi phí gửi SMS lại trở thành gánh nặng.

Với xác thực SMS hiện có, dịch vụ sẽ gửi tin nhắn xác thực cho người dùng (MT, Mobile Terminated). Mỗi tin nhắn tốn 9~50 won, còn kèm cả phí cơ bản hàng tháng, nên số người dùng càng tăng thì chi phí càng lớn, và vì hợp đồng cùng khâu xét duyệt nên đôi khi mất 1~2 tuần mới tích hợp xong.

OCTOMO đã làm ngược lại hướng này (MO, Mobile Originated). Người dùng dùng chính điện thoại của mình để gửi tin nhắn chứa mã xác thực tới số được chỉ định, còn dịch vụ chỉ cần tra cứu tin nhắn đã nhận qua API. Vì chủ thể gửi tin nhắn là người dùng nên phía dịch vụ không phát sinh chi phí gửi, đồng thời việc người dùng thực sự đã gửi tin nhắn từ thiết bị đó cũng trở thành một hình thức xác thực quyền sở hữu thiết bị.

Luồng được khuyến nghị là khi nhấn nút xác thực, ứng dụng nhắn tin sẽ mở ra với số nhận và mã xác thực đã được điền sẵn, và người dùng chỉ cần nhấn nút gửi. (Vì xử lý bằng deeplink sms:, phần này cần được triển khai ở frontend, nhưng trên di động thì đây là cách chuẩn.) Nhờ vậy không còn chuyện nhập sai số hoặc gõ nhầm mã, nên tỷ lệ thất bại cũng giảm theo.

Quảng cáo

API thực tế gần như chỉ có một endpoint.
POST /octomo/v1/public/message/exists

  • Đầu vào: số điện thoại + mã do người dùng đã gửi
  • Đầu ra: có nhận được tin nhắn chứa mã đó trong vòng 5 phút gần nhất hay không (verified: true/false)

Luồng tích hợp khá đơn giản, kiểu như “chạm nút → tự động chạy ứng dụng nhắn tin (tự động điền số và mã) → người dùng gửi → gọi API này, nếu trả về true thì cho qua”. Không cần cài ứng dụng riêng hay SDK, chỉ cần gọi REST, và đã có ví dụ Node/Java/Python trong tài liệu.

Quảng cáo

Tôi cũng đã ghi rõ những giới hạn một cách thẳng thắn.

  • Dù đã loại bỏ công sức nhập liệu bằng deeplink, người dùng vẫn còn phải thực hiện thêm một bước là nhấn nút gửi (đánh đổi với chi phí gửi 0 won và việc tăng cường xác thực quyền sở hữu thiết bị).
  • Vì dựa trên số điện thoại di động trong nước nên người dùng ở nước ngoài không thuộc đối tượng áp dụng.
  • Người dùng sẽ chịu cước SMS theo gói cước của bản thân (nếu là gói không giới hạn thì gần như miễn phí).

Tôi đặc biệt muốn nghe các ý kiến như lo ngại về UX kiểu “với luồng này liệu tỷ lệ người dùng rời bỏ có cao không”, hoặc các góp ý từ góc độ bảo mật. Rất hoan nghênh phản hồi.

5 bình luận

 
winterjung 7 giờ trước

Tôi biết rằng xác minh danh tính và xác minh quyền sở hữu có các yêu cầu pháp lý khác nhau, nên có những trường hợp bắt buộc phải dùng xác minh danh tính. Sẽ tốt hơn nếu bài viết nêu rõ hơn trong những trường hợp nào thì chỉ dùng xác minh quyền sở hữu là đủ.

 
choigeon0501 2 giờ trước

Cảm ơn bạn đã phản hồi!
Đúng như bạn nói, xác thực danh tính và xác thực quyền sở hữu đáp ứng các yêu cầu khác nhau,
vì vậy chúng tôi sẽ sắp xếp và bổ sung rõ ràng hơn trong tài liệu về tiêu chí trường hợp nào chỉ cần xác thực quyền sở hữu là đủ.
Cảm ơn bạn đã chỉ ra rất chính xác!

 
hmmhmmhm 8 giờ trước

Ồ, đây đúng là thứ tôi từng mong ít nhất một lần, mà API lại được làm rất dễ dùng nữa...!
"Người dùng dùng chính điện thoại của mình gửi mã xác thực qua tin nhắn tới số được chỉ định"
Phần này hơi gây bối rối một chút, tức là mình sẽ hướng dẫn họ gửi tin nhắn tới số do OCTOMO cung cấp đúng không?

 
choigeon0501 8 giờ trước

Vâng, đúng vậy! Bạn chỉ cần hướng dẫn để khách hàng gửi tin nhắn chứa mã xác thực tới số do OCTOMO cung cấp.

Trong môi trường ứng dụng, chúng tôi khuyến nghị tận dụng deeplink sms: để khi người dùng nhấn nút xác thực, ứng dụng nhắn tin sẽ tự động mở!

Trong môi trường web, hiện tại chúng tôi đang cung cấp phương thức gửi tin nhắn chứa mã xác thực, đồng thời cũng đang phát triển thêm phương thức bằng mã QR.
Khi người dùng quét mã QR, hệ thống sẽ tự động chuyển sang ứng dụng nhắn tin!

Xin cảm ơn!

 
hmmhmmhm 6 giờ trước

Wow, tuyệt quá.. Tôi sẽ dùng rất ổn cho dự án phụ haha