FrontendBackendDatabaseNext.js

Создание пользовательского потока регистрации в Next.js 15

·MAGMA

Что происходит при создании аккаунта?

Когда пользователь нажимает кнопку "Создать аккаунт", запускается следующий процесс:

  1. Браузер отправляет запрос POST на серверный эндпоинт /api/auth/register, передавая введённые пользователем данные.
  2. Сервер проверяет корректность данных и создаёт новую запись в таблице пользователей базы данных (INSERT INTO users ...).
  3. После успешного создания пользователя отправляется письмо подтверждения на указанный адрес электронной почты.
  4. Пользователь перенаправляется на страницу проверки почтового ящика (GET /dashboard -> 302 to /check-email), где ему предлагается проверить почту.

После того как пользователь перейдет по ссылке подтверждения из письма, произойдут следующие действия:

  1. Клиент браузера выполняет запрос GET к эндпоинту /api/auth/verify, передаёт токен подтверждения.
  2. Сервер обновляет статус верификации пользователя в базе данных (UPDATE users SET email_verified = true WHERE id = ?).
  3. Пользователю устанавливается сессионное куки и он автоматически авторизуется (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 – они уже встроены в систему миграции баз данных.

Вернуться к блогу
Регистрация пользователей в Next.js 15 — MAGMA