Next.js vs Django, credentials и Google OAuth в одном auth-контуре
В fullstack-проектах на Next.js и Django авторизация часто ломается не из-за библиотек, а из-за архитектуры.
Типовой сценарий такой.Сначала добавляется NextAuth, чтобы быстро закрыть login и OAuth.Потом нужен защищенный API на Django с JWT.Потом оказывается, что credentials-вход и Google OAuth сходятся в разные точки.Потом access token хранится в одном месте, refresh в другом, а logout вообще в третьем.
В итоге вместо одной системы доступа получается несколько полусвязанных контуров.
Рабочее решение:NextAuth нужен как фронтовая оболочка для входа и сессии.Django должен остаться единственным источником JWT для API.После любого входа, через email или Google, фронт должен получить одну и ту же пару access + refresh.Дальше все запросы идут через единый клиент с refresh-потоком и понятным завершением сессии.
Эта схема хорошо снимает вторую авторизацию, расхождение между OAuth и credentials и ручную возню с токенами.
Статья на Хабр
Витрина проекта: AI Chat github
Проект: AI Chat
Stepik: AI на Django и Next II