Этот конспект не сохранится

Закроешь вкладку — потеряешь. Зарегистрируйся — и он будет в библиотеке навсегда.

Telegram

Ваш конспект

YouTubeВайб-кодинг SaaS стартапа: подключаем регистрацию и вход через Google за 15 минут

🔐 Авторизация в SaaS-приложении: полная настройка без кода

Ключевые тезисы:

  • ✅ Настройка регистрации, входа, сброса пароля и входа через Google без написания кода
  • 🔒 Хэширование паролей — базовое требование безопасности для защиты данных пользователей
  • 🍪 Сессии (куки) — механизм, позволяющий серверу "помнить" авторизованного пользователя
  • 📧 Верификация email — обязательный шаг для защиты от спама и подтверждения пользователя
  • 🔗 OAuth-авторизация (через Google) — удобный и безопасный способ входа для пользователей

🛡️ Безопасность и внутреннее устройство

Хэширование паролей
Хэширование паролей — это процесс преобразования пароля в нечитаемую строку символов, которую невозможно обратно восстановить до оригинала. Пароль никогда не хранится в базе данных в открытом виде.

  • Причина: Базы данных могут утекать. Если пароли хэшированы, злоумышленник не сможет ими воспользоваться.
  • Дополнительный риск: Пользователи часто используют одни и те же пароли на разных сервисах.

Механизм сессий
HTTP-протокол не сохраняет состояние. Для запоминания пользователя используется механизм сессий:

  1. После успешного ввода пароля сервер создаёт запись о сессии.
  2. Браузеру выдаётся уникальный идентификатор сессии (куки).
  3. При каждом новом запросе браузер отправляет этот идентификатор.
  4. Сервер проверяет его и предоставляет доступ к личному кабинету.
  • Время жизни сессии можно настраивать (например, 30 минут) для повышения безопасности.

Верификация email

  • Зачем это нужно? Чтобы предотвратить регистрацию на чужой email, что может привести к жалобам на спам и блокировке вашего почтового сервиса.
  • Как работает? После регистрации на указанный адрес отправляется письмо со ссылкой для подтверждения. Аккаунт активируется только после перехода по ней.

OAuth-авторизация (Вход через Google)

  • Пользователь авторизуется на стороне Google, который затем передаёт вашему приложению только разрешённые данные (email, имя).
  • Преимущества:
    • Удобство для пользователя (не нужно запоминать новый пароль).
    • Для разработчика: email уже подтверждён Google, отдельная верификация не требуется.

⚙️ Практическая настройка в проекте (One Shot)

Что уже реализовано в шаблоне:

  • Формы регистрации, входа, восстановления пароля.
  • Автоблокировка при многократном неверном вводе пароля.
  • Одноразовые ссылки для сброса пароля (действуют 1 час).
  • Панель администратора для управления всеми настройками авторизации.

Настройка отправки писем (SMTP)
Для работы регистрации и восстановления пароля необходимо подключить почтовый сервис (на примере Resend):

  1. Регистрация в Resend: Бесплатный тариф (100 писем/день).
  2. Добавление домена: Необходимо для отправки писем с вашего адреса (user@yourdomain.com) и избегания спама. Требует добавления DNS-записей.
  3. Создание API-ключа: Копируется один раз в настройках Resend.
  4. Заполнение настроек в панели One Shot: В разделе "Почта" вводятся:
    • Host, Port
    • Username: resend
    • Пароль: API-ключ
    • From Email и From Name

Настройка входа через Google

  1. Создание проекта в Google Cloud Console.
  2. Настройка экрана согласия (OAuth consent screen):
    • Тип приложения: External.
    • После настройки необходимо опубликовать приложение (Publish App). Верификация не требуется для запроса только email и имени.
  3. Создание учётных данных (Credentials):
    • Тип: Web application.
    • Важный шаг: В Authorized redirect URIs необходимо вставить Google Callback URL из настроек One Shot.
    • Копируем Client ID и Client Secret.
  4. Активация в One Shot: Включаем Google в настройках, вставляем полученные ключи.

🎯 Итоги и следующий шаг

Результат: После выполнения настроек в проекте полностью работают:

  • 📝 Регистрация с подтверждением email
  • 🔑 Вход по паролю
  • 🔓 Сброс пароля
  • ✉️ Отправка писем с вашего домена
  • 🔗 Вход через Google

Следующий этап: Деплой приложения на сервер, чтобы сделать его доступным в интернете.

🔐 Настройка авторизации в SaaS без кода — конспект на EchoNote