Цей сайт автоматично перекладено кількома мовами за допомогою ПЗ, розробленого Kohei Koyanagi. Для точності зверніться до оригіналу англійською .

Випуск Splync v1.1 з верифікацією електронної пошти

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 (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 робить значущий крок вперед — роблячи управління спільними витратами не лише зручним, але й надійним.