Сеанс на стороне сервера с фреймворком Django REST и аутентификацией токенов

#django-rest-framework #django-authentication #django-sessions #http-token-authentication

#django-rest-framework #django-аутентификация #django-сеансы #http-token-аутентификация

Вопрос:

Я использую аутентификацию на основе токенов (через dj-rest-auth 1.1.2) в моем проекте Django REST-Framework (DRF v. 3.12.1). После первоначального входа в систему на основе представления сервер выдает токен, который клиент должен включать в заголовок HTTP-аутентификации при каждом запросе.

Что я хотел бы сделать, так это связать аутентификацию токена с сеансом на стороне сервера, аналогично тому, что предоставляет платформа Django Session Framework. То есть я хотел бы создать кэшируемый объект сеанса, который хранит информацию, такую как роли пользователей, которые в противном случае необходимо было бы извлекать из БД при каждом запросе.

Похоже, что для этой проблемы нет готового решения, не так ли? Насколько я понимаю, фреймворк Django Session работает только с сеансовыми файлами cookie, но не с другими токенами. С другой стороны, аутентификация на основе токенов, похоже, не создает сеанс на стороне сервера.

Мои вопросы:

  • Это правильно, или я просто пропускаю какую-то конфигурацию или неправильно читаю документацию?
  • Если да, есть ли что-то изначально неправильное в моем предполагаемом подходе (что объясняет, почему я не могу найти библиотеку, которая уже это делает)?
  • Опять же, если да, каким будет каноническое решение для обработки сложных ролей пользователей по каждому запросу? Просто сохраните их в БД и позвольте надлежащему кэшированию позаботиться об этом?

Спасибо за вашу помощь!

Комментарии:

1. Вы решили? Если да, то как

2. к сожалению, нет