Я разрабатываю свой первый более чем тривиальный API-интерфейс в Django с Django Rest Framework. Я пытаюсь создать веб-сервис, в котором размещаются таблицы рекордов для моих игр. Затем игры будут публиковать и получать свои рекорды через http-запросы через API.
На данный момент структура моей модели выглядит примерно так:
- Game
- Highscoretable
- HighscoreEntry
- Highscoretable
Теперь, поскольку служба будет обрабатывать множество разных игр, я хотел бы предоставить отдельный токен oauth2 для каждой игры и ограничить разрешения API для этой игры. Мне удалось настроить аутентификацию oauth2 с помощью этого руководства: http://www.django-rest-framework.org/api-guide/authentication
Однако на данный момент кажется, что он дает доступ ко всему API. Затем я проверил http://www.django-rest-framework.org/api-guide/permissions , где есть упоминание о том, что для ограничения разрешений на подмножество функций мне нужны настраиваемые классы разрешений.
Основываясь на этой информации, я попытался найти в Google примеры того, как это сделать с помощью oauth2. На той же странице был пример пользовательского класса. Однако я понятия не имею, как применить его к oauth2. Могу ли я каким-то образом установить определенный access_token для моей игровой модели, чтобы при поступлении запроса я мог сравнить токен запрашивающей стороны с собственным токеном игры? Если да, то как?
тл;др; Как создать пользовательские классы разрешений для моделей с уникальными токенами oauth2? Чтобы каждый токен давал права соответствующей модели.