Ключи доступа и авторизация для SaaS без стороннего сервиса
Обновлено
В Seed входят по ключам доступа, по ссылкам для входа на почту, через Google и GitHub, а проверяет всё собственный API на вашем сервере, без стороннего сервиса авторизации. Пароли, ключи доступа и ссылки для входа работают сразу после деплоя, без платы за пользователя; для Google и GitHub нужно по два ключа в env-файле.
- Пароли хешируются PBKDF2-SHA-256 через Web Crypto, по умолчанию 600 000 итераций
- Подписанные cookie сеанса и журнал всех событий входа
- Личные API-токены, которые хранятся только как хеши с ключом
- Ключи доступа: хранится только открытый ключ, и каждый запрос на вход срабатывает один раз
- Ссылки для входа: одна ссылка и входит, и регистрирует, срабатывает один раз в течение 15 минут и хранится только как хеш
- Гостевые аккаунты (анонимный вход): посетитель начинает в один клик без способа входа, а потом добавляет к тому же аккаунту почту и пароль, Google, GitHub или ключ доступа
- Неверные пароли считаются по логину со всех сетевых адресов, после чего вход ненадолго блокируется
API сам проверяет каждый вход и отвечает подписанной cookie сеанса. Ключ доступа работает на встроенном в браузер WebAuthn: сервер хранит только открытый ключ, и каждый запрос на вход срабатывает один раз. Ссылка для входа и входит, и регистрирует, срабатывает один раз в течение 15 минут и хранится только как хеш.
Приложение-аутентификатор добавляет двухфакторную защиту. В профиле видны все способы входа в аккаунт и все устройства, где выполнен вход, а смена способа входа требует подтверждения и присылает письмо. Посетитель может начать и с гостевого аккаунта, а способ входа добавить потом.

Нужен ли отдельный сервис авторизации?
Нет. Пароли, ключи доступа, ссылки для входа и ответы Google и GitHub проверяет собственный API Seed на вашем сервере, поэтому платить за каждого пользователя не нужно.
Поддерживает ли Seed ключи доступа (passkeys)?
Да. Люди добавляют ключ доступа в профиле и входят с ним; сервер хранит только открытый ключ, а каждый запрос на вход срабатывает один раз.
Есть ли в Seed двухфакторная аутентификация?
Да. Приложение-аутентификатор добавляет одноразовый код при входе, в том числе после входа через Google или GitHub.
Можно ли обойтись без входа через Google или GitHub?
Да. Каждый из них выключен, пока в env-файле не заданы обе его переменные: не задали — входа через него нет.
Seed работает на Node или Bun?
Пока нет. Сейчас Seed работает на Deno, а переход на Deno, Node и Bun уже идёт (#623). План по рантайму — на странице возможностей.