Как использовать улучшенную аутентификацию в Django Rest Framework и применять действия на основе ролей (администратор против пользователя)?
Я создаю проект с помощью:
- Интерфейс: Next.js использование Better-Auth для аутентификации
- Серверная часть: Django + Django REST Framework (DRF)
Лучше-Auth выдает клиентам JWT, и я хочу, чтобы Django доверял этим токенам. Например:
- Обычные пользователи могут получить доступ к основным конечным точкам (
/profile
,/orders/
). - Только администраторы должны иметь доступ к определенным ресурсам (например,
/reports/
,/admin-tools/
).
Как правильно:
- Улучшите проверку Django-JWTS Auth?
- Проанализируйте утверждение
role
из токена, чтобы я мог различать"user"
и"admin"
? - Примените эти роли в DRF, чтобы только администраторы могли получать доступ к определенным представлениям?
Я видел примеры с rest_framework_simplejwt
, но в них обычно предполагается, что токены выдает Django. В моем случае токены выдаются Better-Auth (Next.js).
Раньше я использовал Djoser + Auth.js , но поскольку команда Auth.js официально объявила, что теперь она будет поддерживаться лучшими разработчиками.-Команда Auth и порекомендовала использовать Better-Auth для новых проектов, я решил отказаться Auth.js и двигайтесь вперед с улучшенной авторизацией.
Как мне следует настроить аутентификацию DRF + разрешения для этой настройки?