Better Auth — когда аутентификация перестаёт быть головной болью

Знакомая ситуация? Вы начинаете новый проект на TypeScript, и вот она — неизбежная необходимость реализовать систему аутентификации. Сначала кажется, что всё просто: логин, пароль, пара middleware... А потом всплывают требования: двухфакторная аутентификация, поддержка multi-tenancy, интеграция с соцсетями — и вот вы уже копируете куски кода из прошлых проектов или думаете о сторонних сервисах. Именно эту проблему и решает Better Auth.
Что такое Better Auth?
Better Auth — это TypeScript-библиотека для аутентификации и авторизации, которая работает с любым фреймворком. Создатели называют её «самой комплексной» в экосистеме TypeScript, и не без оснований — проект уже собрал более 17 тысяч звёзд на GitHub.
Чем она отличается от десятков других решений?
- Фреймворк-независимость — подойдёт для Express, Next.js, NestJS и других
- Готовые сложные сценарии из коробки (2FA, multi-tenancy)
- Экосистема плагинов для быстрого расширения функциональности
- Фокус на TypeScript с качественными типами
Ключевые возможности, которые вас зацепят
1. Плагины вместо кастомного кода
Хотите добавить вход через Google? В других библиотеках вам пришлось бы разбираться с OAuth-потоками. В Better Auth это выглядит так:
import { GoogleProvider } from '@better-auth/google';
auth.use(new GoogleProvider({
clientId: 'YOUR_GOOGLE_CLIENT_ID',
clientSecret: 'YOUR_GOOGLE_SECRET'
}));
Такие плагины уже есть для основных провайдеров, а если нужно что-то экзотическое — можно написать свой.
2. Multi-tenancy без боли
Для SaaS-приложений поддержка нескольких клиентов — must have. Better Auth предлагает встроенные механизмы для изоляции данных между tenant'ами:
const tenantAuth = auth.forTenant('tenant-id');
tenantAuth.register(/* ... */);
3. Гибкая двухфакторная аутентификация
Поддержка 2FA — одна из самых сложных частей при реализации аутентификации. В Better Auth она доступна буквально в несколько строк:
// Включение 2FA для пользователя
await auth.enable2FA(userId, {
type: 'totp', // или 'sms', 'email'
// ...дополнительные настройки
});
Технические особенности
Под капотом Better Auth использует:
- Современные криптографические алгоритмы для хранения паролей
- JWT с возможностью кастомизации
- Систему хуков для расширения стандартного поведения
- Полноценную TypeScript-типизацию всех сущностей
Архитектура библиотеки позволяет легко интегрировать её в существующие проекты без необходимости переписывать всю систему аутентификации с нуля.
Когда особенно пригодится?
- Стартапы — быстро запустить безопасную аутентификацию без лишнего кода
- Корпоративные приложения — сложные сценарии вроде multi-tenancy и ролевой модели
- Проекты с частыми изменениями — плагинная система позволяет адаптироваться без переписывания кода
- Команды, ценящие TypeScript — отличная типизация уменьшит количество runtime-ошибок
Вывод: стоит ли попробовать?
Если вы:
- Устали каждый раз изобретать велосипед для аутентификации
- Хотите сэкономить недели разработки на стандартных сценариях
- Цените TypeScript и хорошую типизацию
...то Better Auth определённо заслуживает внимания. Проект активно развивается (несмотря на открытые issues), имеет хорошую документацию и активное сообщество в Discord.
Для первых шагов:
npm install better-auth
Или изучите документацию, чтобы увидеть все возможности.
А вы уже пробовали Better Auth в своих проектах? Делитесь опытом в комментариях!