Что происходит при создании аккаунта?
Когда пользователь нажимает кнопку "Создать аккаунт", запускается следующий процесс:
- Браузер отправляет запрос
POSTна серверный эндпоинт/api/auth/register, передавая введённые пользователем данные. - Сервер проверяет корректность данных и создаёт новую запись в таблице пользователей базы данных (
INSERT INTO users ...). - После успешного создания пользователя отправляется письмо подтверждения на указанный адрес электронной почты.
- Пользователь перенаправляется на страницу проверки почтового ящика (
GET /dashboard -> 302 to /check-email), где ему предлагается проверить почту.
После того как пользователь перейдет по ссылке подтверждения из письма, произойдут следующие действия:
- Клиент браузера выполняет запрос
GETк эндпоинту/api/auth/verify, передаёт токен подтверждения. - Сервер обновляет статус верификации пользователя в базе данных (
UPDATE users SET email_verified = true WHERE id = ?). - Пользователю устанавливается сессионное куки и он автоматически авторизуется (
set session cookie).
Таким образом, регистрация завершается только после успешной верификации адреса электронной почты.
Структура таблицы пользователей
Для хранения информации о зарегистрированных пользователях используется таблица users. Вот её структура:
CREATE TABLE users (
id BIGSERIAL PRIMARY KEY,
email CITEXT NOT NULL UNIQUE,
password_hash TEXT NOT NULL,
email_verified BOOLEAN NOT NULL DEFAULT FALSE,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
Эта схема позволяет хранить уникальные электронные адреса, хешированные пароли и информацию о статусе верификации.
Если вы используете готовое решение вроде kavachOS, вам не придётся вручную писать эти запросы SQL – они уже встроены в систему миграции баз данных.