OCTOMO — API ยืนยันตัวตนด้วยหมายเลขมือถือแบบที่ลูกค้าเป็นผู้ส่ง SMS เอง (MO)
(octomo.octoverse.kr)นี่คือ API ยืนยันตัวตนด้วยมือถือที่ทำขึ้นโดยพลิกทิศทางเดิม เพราะทุกครั้งที่เพิ่มการยืนยันตัวตนตอนสมัครสมาชิกในบริการ ค่าจัดส่ง SMS กลายเป็นภาระที่ไม่น้อย
การยืนยันด้วย SMS แบบเดิมคือบริการจะเป็นฝ่ายส่งข้อความยืนยันไปหาผู้ใช้ (MT, Mobile Terminated) โดยมีค่าใช้จ่ายต่อข้อความ 9~50 วอน และยังมีค่าบริการรายเดือนพื้นฐาน ทำให้ยิ่งผู้ใช้เพิ่ม ต้นทุนก็ยิ่งสูงขึ้น อีกทั้งจากเรื่องสัญญาและการตรวจสอบ บางครั้งกว่าจะเชื่อมต่อได้ก็ใช้เวลา 1~2 สัปดาห์
OCTOMO กลับทิศทางตรงกันข้าม (MO, Mobile Originated) ผู้ใช้ใช้โทรศัพท์ของตัวเองส่ง SMS ที่มีโค้ดยืนยันไปยังหมายเลขที่กำหนด แล้วบริการเพียงตรวจสอบข้อความที่รับเข้ามาผ่าน API เท่านั้น เนื่องจากผู้ส่งข้อความคือผู้ใช้เอง ฝั่งบริการจึงไม่เกิดค่าใช้จ่ายในการส่ง และเพราะผู้ใช้ส่งข้อความจากอุปกรณ์นั้นจริง จึงถือเป็นการยืนยันการครอบครองอุปกรณ์ได้
ขั้นตอนที่แนะนำคือ เมื่อกดปุ่มยืนยัน จะเปิดแอปข้อความขึ้นมาโดยกรอกหมายเลขปลายทางและโค้ดยืนยันไว้เรียบร้อยแล้ว จากนั้นผู้ใช้เพียงกดปุ่มส่งเท่านั้น (
sms:ดีพลิงก์จึงเป็นส่วนที่ต้องทำในฝั่งฟรอนต์เอนด์ แต่บนมือถือวิธีนี้ถือเป็นแนวทางมาตรฐาน) ทำให้ไม่ต้องกังวลเรื่องกรอกหมายเลขผิดหรือพิมพ์โค้ดผิด และช่วยลดอัตราการล้มเหลวไปพร้อมกันAPI แทบจะมีเพียงเอ็นด์พอยต์เดียว
POST /octomo/v1/public/message/exists
- อินพุต: หมายเลขโทรศัพท์มือถือ + โค้ดที่ผู้ใช้ส่ง
- เอาต์พุต: ภายใน 5 นาทีล่าสุด มีการรับข้อความที่มีโค้ดดังกล่าวหรือไม่ (
verified: true/false)โฟลว์การเชื่อมต่อค่อนข้างง่าย: "แตะปุ่ม → เปิดแอปข้อความอัตโนมัติ (กรอกหมายเลขและโค้ดอัตโนมัติ) → ผู้ใช้กดส่ง → เรียก API นี้แล้วถ้าได้ true ก็ผ่าน" ไม่ต้องติดตั้งแอปเพิ่มเติมหรือใช้ SDK แค่เรียก REST ก็พอ และมีตัวอย่างสำหรับ Node/Java/Python ใส่ไว้ในเอกสารแล้ว
ขอพูดถึงข้อจำกัดอย่างตรงไปตรงมาด้วย
- แม้จะลดภาระการกรอกด้วยดีพลิงก์ได้ แต่ผู้ใช้ยังต้องกดปุ่มส่งเพิ่มอีกหนึ่งครั้งอยู่ดี (เป็น trade-off กับต้นทุนการส่ง 0 วอนและการยืนยันการครอบครองอุปกรณ์ที่เข้มแข็งขึ้น)
- เพราะอิงกับหมายเลขโทรศัพท์มือถือในเกาหลีใต้ ผู้ใช้ต่างประเทศจึงไม่ใช่กลุ่มเป้าหมาย
- ผู้ใช้จะถูกคิดค่าบริการ SMS ตามแพ็กเกจของตนเอง (ถ้าเป็นแพ็กเกจไม่จำกัดก็แทบจะฟรี)
โดยเฉพาะอย่างยิ่ง อยากฟังข้อกังวลด้าน UX เช่น "ถ้าเป็นโฟลว์แบบนี้ ผู้ใช้อาจหลุดออกไปมากไหม" หรือข้อสังเกตในมุมมองด้านความปลอดภัย ยินดีรับทุกความคิดเห็น
16 ความคิดเห็น
อ๋อ เป็นการยืนยันตัวตนแบบ MO ประเภทหนึ่งนี่เอง ถ้ามีการกล่าวถึงด้วยว่าบริการอย่างการยืนยันตัวตนหรือการยืนยันการครอบครองโทรศัพท์มือถือแบบนี้ มีผลทางกฎหมายโดยเป็นไปตามข้อกำหนดทางกฎหมายของหน่วยงานที่เกี่ยวข้องหลัก ๆ เช่น สำนักงานกำกับดูแลทางการเงินหรือไม่ ก็น่าจะดียิ่งขึ้นครับ เป็นกำลังใจให้ครับ!
ขอบคุณสำหรับกำลังใจ!
ขอบคุณที่สร้างบริการดี ๆ ขึ้นมาครับ!
ตอนนี้การตรวจสอบว่ามีการรับข้อความหรือไม่ถูกกำหนดตายตัวไว้ที่ภายใน 5 นาทีล่าสุด
แต่ก็อาจมีบางกรณีที่อยากกำหนดให้สั้นหรือยาวกว่านี้
เลยคิดว่าถ้าสามารถระบุเวลาสำหรับตรวจสอบสถานะการรับข้อความได้ภายในพารามิเตอร์ของ API
ก็น่าจะเป็นไอเดียที่ดีเหมือนกันครับ!
ขอบคุณสำหรับความคิดเห็นดี ๆ! เราจะตรวจสอบในส่วนที่คุณกล่าวถึงและปรับปรุงให้เป็นบริการที่ดียิ่งขึ้นครับ!
ตอนที่สร้างฟังก์ชันนี้ไว้ใช้ภายใน ก็เคยคิดอยู่ว่าจะลองเปิดให้บริการ SaaS ที่มีลักษณะคล้ายกันควบคู่กันไปดีไหม
แต่ก็รู้สึกว่านี่น่าจะมีประเด็นทางกฎหมายอยู่พอสมควร
เพราะมันจะกลายเป็นรูปแบบการขายสิทธิ์ให้ลูกค้าใช้หมายเลขโทรศัพท์ที่ทำสัญญาไว้ในนามบริษัทของฉัน
ก็เลยแอบคิดขึ้นมาว่า แบบนี้จะเข้าข่ายฝ่าฝืนกฎหมายโทรคมนาคมหรือเปล่า...
ทำให้นึกถึงสมัยโทรศัพท์ฟีเจอร์โฟนที่สามารถเปลี่ยนหมายเลขผู้ส่งได้ตามใจเลยนะครับ
ถ้าเป็นตอนนั้นก็คงเป็นเทคโนโลยีที่ใช้ไม่ได้ผล แต่ก็น่าสนใจที่เมื่อยุคสมัยเปลี่ยนไป มันกลับกลายเป็นเทคโนโลยีที่นำมาใช้ประโยชน์ได้
ขอบคุณที่ให้ความสนใจ!
โอ้ ไอเดียดีนะ
ขอบคุณครับ!
ตอนออกใบรับรองดิจิทัลแบบเดิม ก็มีการยืนยันตัวตนในลักษณะให้ตอบกลับ SMS ด้วยตัวเลขที่กำหนดตามวิธีที่คุณกล่าวไว้ครับ
จริง ๆ แล้ววิธีการยืนยันตัวตนแบบให้ผู้ใช้เป็นฝ่ายส่งข้อความเองในลักษณะนี้ก็มีการใช้งานอยู่บ้างแม้จะไม่มาก ดังนั้นคงไม่จำเป็นต้องมีฟีดแบ็กเกี่ยวกับแนวคิดนี้เป็นพิเศษนัก
โดยส่วนตัวผมชอบวิธีนี้มากกว่าการรับรหัสยืนยันแล้วนำไปกรอก
อย่างไรก็ดี ถ้าเป็นกรณีที่ต้องมีการยืนยันตัวตนตามกฎหมาย ก็คงต้องรองรับ PASS อยู่แล้ว จึงขอละไว้ต่างหาก...
ผมเข้าใจว่าข้อกำหนดทางกฎหมายที่การยืนยันตัวตนและการยืนยันการครอบครองต้องปฏิบัติตามนั้นแตกต่างกัน จึงมีบางกรณีที่จำเป็นต้องใช้การยืนยันตัวตนอยู่แล้ว แต่คงจะดีไม่น้อยหากมีการอธิบายให้ชัดเจนกว่านี้ว่าในกรณีใดบ้างที่สามารถใช้เพียงการยืนยันการครอบครองได้
ขอบคุณสำหรับฟีดแบ็กครับ!
อย่างที่คุณกล่าวไว้ ข้อกำหนดที่การยืนยันตัวตนและการยืนยันการครอบครองต้องตอบโจทย์นั้นแตกต่างกัน
เราจะจัดเรียบเรียงและเพิ่มเกณฑ์ว่าในกรณีใดการยืนยันการครอบครองเพียงอย่างเดียวจึงเพียงพอให้ชัดเจนยิ่งขึ้นในเอกสาร
ขอบคุณที่ช่วยชี้ประเด็นได้อย่างตรงจุดครับ!
โอ้ นี่เป็นอะไรที่เคยหวังว่าอยากให้มีสักครั้งเลย แต่ API ออกแบบมาให้ใช้งานง่ายมากจริง ๆ...!
"ผู้ใช้ส่งข้อความที่มีรหัสยืนยันจากโทรศัพท์มือถือของตัวเองไปยังหมายเลขที่กำหนด"
ตรงนี้แอบทำให้งงนิดหน่อย คือให้แนะนำให้ส่งข้อความไปยังหมายเลขที่ OCTOMO ให้มาใช่ไหมครับ?
ใช่ครับ ถูกต้องแล้ว! เพียงแนะนำให้ส่งข้อความที่มีรหัสยืนยันไปยังหมายเลขที่ OCTOMO ให้มาได้เลย
ในสภาพแวดล้อมของแอป แนะนำให้ใช้ดีปลิงก์
sms:เพื่อให้เมื่อผู้ใช้กดปุ่มยืนยัน แอปข้อความเปิดขึ้นมาโดยอัตโนมัติ!ในสภาพแวดล้อมของเว็บ ขณะนี้รองรับวิธีส่ง SMS ที่มีรหัสยืนยันอยู่ และกำลังพัฒนาวิธีผ่าน QR code เพิ่มเติมอยู่ครับ
เมื่อผู้ใช้สแกน QR code ก็จะสลับไปยังแอปข้อความโดยอัตโนมัติเช่นกัน!
ขอบคุณครับ!
ว้าว ดีมากเลยครับ.. เดี๋ยวจะเอาไปใช้กับงานไซด์โปรเจกต์ดี ๆ เลย 555