Splync v1.0 ถึง Splync v1.1
เมื่อคุณลงทะเบียนกับ Splync คุณต้องใส่อีเมลและรหัสผ่าน ตามที่ได้แนะนำไปในบทความก่อนหน้านี้ Splync v1.0 มีมาตรการความปลอดภัยพื้นฐานอยู่แล้ว ข้อมูลของคุณถูกป้องกันด้วย HTTPS เซิร์ฟเวอร์ของเราถูกป้องกันด้วย SSH เพื่อให้เฉพาะผู้พัฒนาสามารถเข้าถึงได้ รหัสผ่านของคุณไม่เคยถูกเก็บในรูปแบบที่อ่านได้ แต่จะถูกแฮชในฐานข้อมูลเพื่อไม่ให้ใครถอดรหัสได้ อย่างไรก็ตาม ความลับของ v1.0 คือไม่มีการยืนยันอีเมลในขั้นตอนการสร้างบัญชี Splync ในฐานะ MVP (Minimum Viable Product) เปิดตัวโดยไม่มีฟีเจอร์นี้เพราะแอปยังอยู่ในระยะที่มีเพียงเพื่อนของฉันเท่านั้นที่รู้จัก ใน v1.0 แอปเพียงแค่ตรวจสอบว่าอีเมลที่ใส่มามี “@” ระหว่างตัวอักษรและไม่ซ้ำกับบัญชีที่มีอยู่แล้วหรือไม่
เกิดอะไรขึ้นถ้าไม่มีการยืนยันอีเมล
ถ้าแอปอนุญาตให้ผู้ใช้สร้างบัญชีโดยไม่ยืนยันตัวตน ง่ายที่จะคิดว่าจะมีคนใช้อีเมลของคนอื่นสร้างบัญชีของตัวเองได้ ซึ่งสามารถเกิดขึ้นได้จริง แม้ว่าจะไม่ทำให้ข้อมูลของคุณรั่วไหล แต่ก็หมายความว่าคุณจะไม่สามารถลงทะเบียนด้วยอีเมลของตัวเองได้หากมันถูกใช้งานไปแล้ว นอกจากนี้ อาจมีคนสร้างบัญชีด้วยอีเมลที่ไม่มีอยู่จริงได้ ซึ่งอาจดูไม่มีปัญหาในตอนแรก แต่จะกลายเป็นปัญหาใหญ่เมื่อผู้พัฒนาพยายามคิดค่าบริการหรือสื่อสารกับผู้ใช้นั้นในภายหลัง ฉันก็จะไม่ได้รู้เลยว่าคนนั้นคือใคร ดังนั้น การยืนยันอีเมลเป็นขั้นตอนถัดไปสำหรับ Splync
การยืนยันอีเมลทำงานอย่างไร
ใน Splync v1.1 เมื่อมีผู้ใช้ใหม่ลงทะเบียน แอปจะส่งอีเมลไปยังที่อยู่อีเมลที่กรอกไว้โดยอัตโนมัติ อีเมลนี้จะมีลิงก์ยืนยันที่สร้างขึ้นโดยอัตโนมัติและไม่ซ้ำกัน เมื่อคลิกที่ลิงก์นั้น ผู้ใช้ยืนยันว่าตัวเองสามารถเข้าถึงบัญชีอีเมลนี้ได้จริง เมื่อยืนยันแล้ว เซิร์ฟเวอร์จะเปิดใช้งานบัญชีของผู้ใช้และบันทึกในฐานข้อมูลว่าเป็นผู้ใช้ที่ยืนยันตัวตนแล้ว ฟังคุ้นๆ ไหม? กระบวนการนี้ทำให้แน่ใจว่าทุกบัญชีใน Splync เป็นของคนจริงที่สามารถติดต่อได้ เป็นขั้นตอนเล็กๆ แต่สำคัญในการสร้างชุมชนที่น่าเชื่อถือ มาดูรายละเอียดทางเทคนิคกันดีกว่า
การดำเนินการทางเทคนิคของการยืนยันอีเมล
เบื้องหลังของ Splync ใช้ Python/FastAPI ส่วนแอปมือถือสร้างด้วย SwiftUI แอปจัดการเฉพาะส่วนติดต่อผู้ใช้ ในขณะที่ลอจิกการยืนยันและข้อมูลที่สำคัญจะอยู่บนเซิร์ฟเวอร์อย่างปลอดภัย ใน v1.1 เราเพิ่มขั้นตอนการยืนยันอีเมลมาตรฐานระหว่าง “ผู้ใช้ยังไม่ได้ยืนยัน” และ “ผู้ใช้ยืนยันแล้ว” เมื่อมีผู้ใช้ใหม่ลงทะเบียน แอปจะส่งข้อมูลที่กรอกไปยังเซิร์ฟเวอร์ เซิร์ฟเวอร์มีฐานข้อมูลของ MariaDB ซึ่งบันทึกผู้ใช้ยังไม่ได้ยืนยันลงในฐานข้อมูล รหัสผ่านจะถูกแฮชและบันทึกไว้ แต่บัญชียังไม่เปิดใช้งาน ขณะนั้น เซิร์ฟเวอร์จะสร้างโทเค็นยืนยันที่ไม่ซ้ำกันและมีเวลาหมดอายุ จากนั้นใช้เซิร์ฟเวอร์ SMTP (Simple Mail Transfer Protocol) เซิร์ฟเวอร์จะส่งอีเมลยืนยันที่มีลิงก์ปลอดภัยและใช้งานได้ครั้งเดียว เมื่อผู้ใช้เปิดลิงก์นั้น เซิร์ฟเวอร์จะตรวจสอบว่าโทเค็นยังถูกต้องและยังไม่หมดอายุ เมื่อยืนยันแล้ว บัญชีจะเปิดใช้งานและผู้ใช้สามารถลงชื่อเข้าใช้แอปได้ตามปกติ วิธีนี้ช่วยให้การยืนยันตัวตนปลอดภัยและมีน้ำหนักเบา
Python? FastAPI? SwiftUI? SMTP? MariaDB
ถ้าฟังดูเหมือนรหัสลับ ไม่ต้องกังวล นี่คือเครื่องมือที่ทำให้ระบบทำงานร่วมกันได้ ลองนึกถึงกระบวนการลงทะเบียนของ Splync เหมือนศูนย์บริการลูกค้าที่กำลังยืนยันตัวตนของใครบางคน “ขอชื่อและอีเมลของคุณได้ไหม?” SwiftUI ถาม ซึ่งเป็นพนักงานต้อนรับที่เป็นมิตรอยู่ที่หน้าเคาน์เตอร์ คุณบอกรายละเอียดกับเธอ และเธอบอกว่า “กรุณารอสักครู่” แล้วส่งต่อทันทีไปยัง FastAPI ซึ่งเป็นระบบโทรศัพท์ภายในของสำนักงาน FastAPI เชื่อมต่อเธอกับ Python ผู้เชี่ยวชาญด้านการยืนยันตัวตนที่ทำงานอยู่เบื้องหลัง Python ตรวจสอบกับ MariaDB ฐานข้อมูลลูกค้า เพื่อบันทึกข้อมูลของคุณอย่างปลอดภัย โดยระบุสถานะของคุณว่า “ยังไม่ได้ยืนยัน” จากนั้น Python ขอให้ SMTP ซึ่งเป็นผู้ส่งข้อความภายนอก ส่งอีเมลยืนยันพร้อมลิงก์ปลอดภัยให้คุณ เมื่อคุณคลิกลิงก์นั้น Python ตรวจสอบว่าลิงก์ยังใช้ได้และอัปเดตข้อมูลของคุณใน MariaDB เป็น “ยืนยันแล้ว” สุดท้าย FastAPI แจ้งพนักงานต้อนรับว่าได้ยืนยันตัวตนของคุณแล้ว และบัญชีของคุณได้เปิดใช้งานแล้ว ทั้งหมดนี้ทำให้กระบวนการยืนยันของ Splync ดูเป็นมิตรและปลอดภัย
ก้าวถัดไปในเส้นทางความปลอดภัยของ Splync
การยืนยันอีเมลอาจดูเหมือนฟีเจอร์เล็กๆ แต่เปลี่ยนทุกอย่างเกี่ยวกับความเชื่อมั่น มันเป็นจุดเริ่มต้นที่ Splync พัฒนาจากโครงการส่วนตัวในกลุ่มเพื่อนไปสู่แอปสาธารณะที่ใครๆ ก็เข้าร่วมได้อย่างมั่นใจ การส่งลิงก์ยืนยันผ่าน SMTP ยังให้ความรู้สึกเหมือนการจับมือครั้งแรกของ Splync กับผู้ใช้ใหม่ ในเบื้องหลัง ฟีเจอร์นี้เป็นรากฐานสำหรับการปรับปรุงในอนาคต เช่น การรีเซ็ตรหัสผ่าน การยืนยันตัวตนหลายขั้นตอน และการกู้คืนบัญชี ทุกชั้นของความปลอดภัยเสริมกันและกัน ด้วยการยืนยันอีเมล Splync v1.1 ก้าวไปข้างหน้าอย่างมีความหมาย ทำให้การจัดการค่าใช้จ่ายร่วมกันไม่เพียงแค่สะดวก แต่ยังน่าเชื่อถืออย่างแท้จริง