از Splync v1.0 به Splync v1.1
وقتی در Splync ثبتنام میکنید، از شما خواسته میشود آدرس ایمیل و رمز عبور خود را وارد کنید. همانطور که در مقالات قبلی معرفی کردم، Splync v1.0 قبلاً شامل اقدامات امنیتی پایه بود. انتقال دادههای شما توسط HTTPS محافظت میشد. سرور ما با SSH ایمن شده بود تا هیچکس جز توسعهدهنده به آن دسترسی نداشته باشد. رمز عبور شما هرگز به صورت متن ساده ذخیره نمیشد بلکه در پایگاه داده هش میشد تا هیچکس نتواند آن را رمزگشایی کند. اما راز v1.0 این بود که در فرآیند ایجاد حساب کاربری، تأیید ایمیل نداشت. Splync به عنوان یک محصول حداقل قابل عرضه (MVP)، بدون این ویژگی منتشر شد زیرا اپلیکیشن هنوز در مرحلهای بود که فقط دوستانم از وجود آن مطلع بودند. در v1.0، اپلیکیشن فقط بررسی میکرد که آیا ایمیل وارد شده حاوی یک «@» بین رشتههای حروف است و آیا در میان حسابهای موجود یکتا است یا خیر.
اگر تأیید ایمیل وجود نداشته باشد چه میشود؟
اگر یک اپلیکیشن به کاربران اجازه دهد بدون تأیید هویت خود حساب کاربری ایجاد کنند، به راحتی میتوان تصور کرد که کسی از آدرس ایمیل شخص دیگری برای ساخت حساب خود استفاده کند. دقیقاً همین اتفاق ممکن است بیفتد. در حالی که این به معنای نشت دادههای شما نیست، اما به این معناست که شما نمیتوانید با آدرس ایمیل خود ثبتنام کنید اگر قبلاً استفاده شده باشد. علاوه بر این، ممکن است کسی با استفاده از یک آدرس ایمیل کاملاً خیالی حساب کاربری ایجاد کند. در ابتدا ممکن است این جدی به نظر نرسد، اما وقتی توسعهدهنده سعی کند از آن کاربر هزینه بگیرد یا تماس بگیرد، به فاجعه تبدیل میشود. حتی نمیدانم آن شخص واقعاً کیست! بنابراین، تأیید ایمیل گام بعدی برای Splync بود.
تأیید ایمیل چگونه کار میکند
در Splync v1.1، وقتی یک کاربر جدید ثبتنام میکند، اپلیکیشن به طور خودکار یک ایمیل به آدرسی که وارد کردهاند ارسال میکند. این ایمیل حاوی یک لینک تأیید منحصر به فرد و خودکار است. با کلیک بر روی آن لینک، کاربر تأیید میکند که واقعاً به آن حساب ایمیل دسترسی دارد. پس از تأیید، سرور حساب کاربری کاربر را فعال کرده و آن را به عنوان یک کاربر معتبر و تأیید شده در پایگاه داده ذخیره میکند. آشنا به نظر میرسد، نه؟ این فرآیند تضمین میکند که هر حساب کاربری در Splync متعلق به یک فرد واقعی و قابل دسترس است - یک گام کوچک اما حیاتی به سوی ایجاد یک جامعه قابل اعتماد. بیایید نگاهی دقیقتر به نحوه اجرای این جریان از دیدگاه فنی بیندازیم.
پیادهسازی فنی تأیید ایمیل
بکاند Splync از Python/FastAPI استفاده میکند و برنامه موبایل با SwiftUI ساخته شده است. برنامه فقط به رابط کاربری میپردازد، در حالی که منطق تأیید و اعتبارهای حساس به طور ایمن در سرور باقی میمانند. در v1.1، ما یک مرحله استاندارد تأیید ایمیل بین «کاربر تأیید نشده» و «کاربر تأیید شده» اضافه کردیم. وقتی یک کاربر جدید ثبتنام میکند، برنامه دادههای وارد شده را به سرور ارسال میکند. سرور دارای یک پایگاه داده MariaDB است. کاربر را به عنوان تأیید نشده در پایگاه داده ذخیره میکند. رمز عبور هش شده و ذخیره میشود، اما حساب کاربری هنوز فعال نشده است. در آن لحظه، سرور همچنین یک توکن تأیید منحصر به فرد با زمان انقضا تولید میکند. سپس، با استفاده از سرور SMTP (پروتکل انتقال ایمیل ساده)، سرور یک ایمیل تأیید حاوی یک لینک امن و یکبارمصرف ارسال میکند. وقتی کاربر لینک را باز میکند، سرور بررسی میکند که توکن معتبر و منقضی نشده است. پس از تأیید، حساب کاربری فعال میشود و کاربر میتواند به طور عادی از برنامه وارد شود. این امر احراز هویت را ایمن و سبک نگه میدارد.
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 یک گام معنادار به جلو میبرد - مدیریت هزینههای مشترک را نه تنها راحت، بلکه واقعاً قابل اعتماد میسازد.