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

15 Oct, 2025

Better Auth Logo

Знакомая ситуация? Вы начинаете новый проект на 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-типизацию всех сущностей

Архитектура библиотеки позволяет легко интегрировать её в существующие проекты без необходимости переписывать всю систему аутентификации с нуля.

Когда особенно пригодится?

  1. Стартапы — быстро запустить безопасную аутентификацию без лишнего кода
  2. Корпоративные приложения — сложные сценарии вроде multi-tenancy и ролевой модели
  3. Проекты с частыми изменениями — плагинная система позволяет адаптироваться без переписывания кода
  4. Команды, ценящие TypeScript — отличная типизация уменьшит количество runtime-ошибок

Вывод: стоит ли попробовать?

Если вы:

  • Устали каждый раз изобретать велосипед для аутентификации
  • Хотите сэкономить недели разработки на стандартных сценариях
  • Цените TypeScript и хорошую типизацию

...то Better Auth определённо заслуживает внимания. Проект активно развивается (несмотря на открытые issues), имеет хорошую документацию и активное сообщество в Discord.

Для первых шагов:

npm install better-auth

Или изучите документацию, чтобы увидеть все возможности.

А вы уже пробовали Better Auth в своих проектах? Делитесь опытом в комментариях!