NextAuth + Django JWT без второй авторизации и ручного хаоса токенов
Во многих fullstack-проектах на Next.js и Django авторизация разваливается в одном и том же месте. На фронте удобно использовать NextAuth, потому что он закрывает формы входа, OAuth, серверную сессию и клиентские хуки. На бэкенде хочется иметь обычный JWT-контур на Django REST Framework, чтобы защищать API, работать...
Во многих fullstack-проектах на Next.js и Django авторизация разваливается в одном и том же месте. На фронте удобно использовать NextAuth, потому что он закрывает формы входа, OAuth, серверную сессию и клиентские хуки. На бэкенде хочется иметь обычный JWT-контур на Django REST Framework, чтобы защищать API, работать с access и refresh токенами и не привязывать бизнес-логику к фронту. В итоге часто получается неприятная схема: пользователь логинится через NextAuth, потом отдельно логинится в Django, потом где-то вручную перекладываются токены, а через пару недель вся эта связка начинает ломаться на refresh, logout и OAuth.Что делаем. Пользователь проходит один вход на фронте, а дальше фронт уже работает с токенами Django как с единственным источником доступа к API. Без второй формы входа, без ручного хранения access token в localStorage, без отдельного костыля под Google OAuth.Разберем рабочую схему, в которой NextAuth отвечает за пользовательскую сессию на фронте, а Django остается владельцем API-авторизации и выдает JWT. На credentials-входе NextAuth сразу получает access и refresh от Django. На Google OAuth фронт сначала пускает пользователя через провайдера, потом синхронизирует его с Django и тоже получает пару токенов. После этого все запросы идут через один axios-клиент, который сам подставляет access token, сам обновляет его через refresh и сам завершает сессию, если refresh уже недействителен.
Связанные теги
Компании и люди
Линия сюжета
API
Последние материалы и связанный контекст по теме API.
API
Последние материалы и связанные ссылки по теме API.
Django
Последние материалы и связанные ссылки по теме Django.
Django
Последние материалы и связанный контекст по теме Django.
Habr
Последние материалы и связанные ссылки по теме Habr.
Habr
Последние материалы и связанный контекст по теме Habr.
Продолжить следить за темой
Переходите к связанным материалам, страницам сущностей и активным линиям сюжета.
RPA и ИИ-агенты в Enterprise архитектуре (не вместо, а вместе)
Привет, Хабр! Меня зовут Сергей, я руковожу управлением операционных технологий в РГС. Недавно мы с командой обсуждали вопрос: «А что эффективнее сегодня: робот или AI-агент?». ...
[Перевод] Claude Code слил 512 000 строк кода. Никто не разобрался в архитектуре. Утечка показала, что это не обёртка, а ОС
512 000 строк утекшего кода. 44 feature-флага. Система питомцев в духе тамагочи. Имена вроде “Tengu”, “Fennec” и “Penguin mode”. Всё это – то, о чём написали сотни новостей. Но ...
Тендеры без ошибок: как ИИ обошёл экспертов в проверке документации
Кто победит в соревновании по обработке документов — опытный специалист или нейросеть? На рутинных повторяющихся задачах ИИ уверенно обходит человека: он работает быстрее и не у...
Критерии выживания и случайность
Анализ проблемы и формирование гипотезы — удача является важным фактором в жизни человека. Но главный вопрос — насколько? Какие категории параметров можно выделить для декомпози...
Под кнопкой «сделать презентацию»: как устроен пайплайн генерации в Кэмпе
Генерация презентации — это не один запрос к модели, а последовательность связанных этапов. Система обрабатывает входные данные, строит структуру, генерирует слайды и формирует ...
Эксперимент: ПГСЧ на таймерах с помощью PHP
Добрый день! Сегодня расскажу, как с помощью PHP создать генератор случайных байт ( чисел ) с помощью 12 таймеров. Энтропия данного генератора составляет примерно 7.1 бит на сим...
Страницы сущностей
Рекламный слот
Встроенный блок в статье
Зарезервированный партнерский слот для релевантных инструментов, сервисов и аккуратных редакционных интеграций.
Похожие статьи
Еще материалы, которые пересекаются по тегам, источнику или категории.
RPA и ИИ-агенты в Enterprise архитектуре (не вместо, а вместе)
Привет, Хабр! Меня зовут Сергей, я руковожу управлением операционных технологий в РГС. Недавно мы с командой обсуждали вопрос: «А что эффективнее сегодня: робот или AI-агент?». ...
[Перевод] Claude Code слил 512 000 строк кода. Никто не разобрался в архитектуре. Утечка показала, что это не обёртка, а ОС
512 000 строк утекшего кода. 44 feature-флага. Система питомцев в духе тамагочи. Имена вроде “Tengu”, “Fennec” и “Penguin mode”. Всё это – то, о чём написали сотни новостей. Но ...
Тендеры без ошибок: как ИИ обошёл экспертов в проверке документации
Кто победит в соревновании по обработке документов — опытный специалист или нейросеть? На рутинных повторяющихся задачах ИИ уверенно обходит человека: он работает быстрее и не у...
Критерии выживания и случайность
Анализ проблемы и формирование гипотезы — удача является важным фактором в жизни человека. Но главный вопрос — насколько? Какие категории параметров можно выделить для декомпози...
Еще материалы от Habr
Свежие публикации и продолжение темы от той же редакции.
RPA и ИИ-агенты в Enterprise архитектуре (не вместо, а вместе)
Привет, Хабр! Меня зовут Сергей, я руковожу управлением операционных технологий в РГС. Недавно мы с командой обсуждали вопрос: «А что эффективнее сегодня: робот или AI-агент?». ...
[Перевод] Claude Code слил 512 000 строк кода. Никто не разобрался в архитектуре. Утечка показала, что это не обёртка, а ОС
512 000 строк утекшего кода. 44 feature-флага. Система питомцев в духе тамагочи. Имена вроде “Tengu”, “Fennec” и “Penguin mode”. Всё это – то, о чём написали сотни новостей. Но ...
Тендеры без ошибок: как ИИ обошёл экспертов в проверке документации
Кто победит в соревновании по обработке документов — опытный специалист или нейросеть? На рутинных повторяющихся задачах ИИ уверенно обходит человека: он работает быстрее и не у...
Критерии выживания и случайность
Анализ проблемы и формирование гипотезы — удача является важным фактором в жизни человека. Но главный вопрос — насколько? Какие категории параметров можно выделить для декомпози...