mirror of
https://github.com/EDeev/api_processor.git
synced 2026-10-07 20:49:34 +03:00
- SECRET_KEY, DEBUG (по умолчанию выключен), ALLOWED_HOSTS — из DJANGO_*; - необязательный API_TOKEN (заголовок Authorization: Bearer), лимит файла MAX_UPLOAD_SIZE_MB (по умолчанию 50); - в ответ на ошибку больше не отдаётся текст исключения — он уходит в лог; - Django 5.2 LTS: 4.2 больше не поддерживается.
16 lines
597 B
Python
16 lines
597 B
Python
import hmac
|
|
|
|
from django.conf import settings
|
|
from rest_framework.permissions import BasePermission
|
|
|
|
|
|
class ApiTokenPermission(BasePermission):
|
|
"""Если задан API_TOKEN, запросы должны нести заголовок Authorization: Bearer <токен>"""
|
|
|
|
message = "Нужен заголовок Authorization: Bearer <API_TOKEN>"
|
|
|
|
def has_permission(self, request, view):
|
|
if not settings.API_TOKEN:
|
|
return True
|
|
header = request.headers.get("Authorization", "")
|
|
return hmac.compare_digest(header, f"Bearer {settings.API_TOKEN}")
|