PromptPay.io 2.0
วิสัยทัศน์ของ PromptPay.io คือการเป็น DNS สำหรับเงินโอน ที่ใช้งานง่ายที่สุด ดังนั้นพันธกิจของ 2.0 ก็คือการเปิดให้ทุกคนสามารถตั้งชื่อ username ของตัวเองได้ แปลว่าต้องทำระบบสมัครสมาชิก
ตอนแรกก็นึกไม่ออกว่าจะเขียนระบบสมาชิกให้ใช้งานง่ายๆ โดยไม่ต้องจำ username, password อีกชุด หรือไม่ต้อง validate email ได้ยังไง ทางนึงก็คือใช้ social network OAuth แล้วตั้ง username ตาม social network แต่ก็ต้องมาปวดหัวกับ edge case การเปลี่ยนชื่ออีก สุดท้ายเลยตัดสินใจทำ OTP login แล้วให้จองชื่อกันเองแบบมาก่อนได้ก่อนนี่ล่ะ
การยืนยันตัวตนผ่าน SMS จะมี 2 ขั้นตอน คือ
- ส่งเบอร์โทรเพื่อร้องขอให้มีการส่ง OTP มาทาง SMS
- ส่ง OTP ที่ได้รับทาง SMS นั้นกลับมาทาง form เพื่อรับ authentication token (คิดแบบบ้านๆ ก็คือ cookie) ที่จะใช้อยู่ในระบบต่อไป
จากสถาปัตยกรรมแบบ serverless ก็นำมาสู่ data structure ที่ stateless ซึ่งสามารถ authenticate ได้จนจบกระบวนการโดยไม่ต้องเก็บ token อะไรไว้ใน database เลย ทำได้ยังไง?
...