Next.js vs Django, credentials и Google OAuth в одном auth-к
Если в проекте есть NextAuth на фронте и JWT на Django-бэкенде, очень легко случайно получить две авторизации вместо одной. Фронт считает, что пользователь уже вошел. API считает, что токена еще нет или он уже недействителен. Обычный логин и OAuth начинают жить по разным сценариям. Refresh вроде есть, но хранится и обновляется не там, где нужно.
Нормальная развилка - не пытаться делать владельцами авторизации сразу и фронт, и бэкенд. Рабочий вариант: NextAuth ведет вход и сессию. Django выдает access и refresh. Credentials и Google OAuth сводятся в один backend bridge. Дальше один auth client берет токены из session, обновляет access по refresh и на 401 корректно завершает сессию. Получается не набор костылей, а один понятный auth-контур.
Статья на Хабр Витрина проекта: AI Chat github Проект: AI Chat Stepik: AI на Django и Next II
· 17.04
тема oauth и credentials вообще часто всплывает на собесах, особенно когда спрашивают про безопасность апи. недавно jobpath.world реально помог — пока шёл вопрос про flow авторизации, подсказал нужные термины прямо на экране. очень кстати был
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 17.04
Да, тема точно просится, особенно когда про безопасность API и границы ответственности между фронтом и бэкендом. Проверяют вероятно понимание, кто в связке отвечает за login-flow, кто за JWT, кто за refresh и где источник правды для доступа к API
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 18.04
да, refresh token rotation особенно любят спрашивать - зачем, когда инвалидировать старый, что делать если утёк. и сразу видно понимает человек или просто знает что "refresh нужен чтобы access не хранить долго"
граница фронт/бэк тоже хорошая тема - кто хранит токены, где httpOnly cookie уместна а где нет, почему localStorage это боль. на этом многие плывут даже с опытом
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 18.04
Мне «повезло угадать» верную архитектуру auth/Next+Django сразу в первых проектах без localStorage, с разделением true и ответственности на границе фронт-бек. Не без помощи ИИ, кстати. Понимание приходило с отладкой, прям открытия делал для себя) Хотя вроде бы задача стандартная для любого приличного прода. С тех пор использую этот кластер во всех похожих проектах. Все коды есть в статье Хабра поста
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён