Как установить пользовательский класс разрешений для представлений DRF JWT? - PullRequest
0 голосов
/ 01 декабря 2018

У меня есть собственный класс разрешений для отклонения любых запросов, для которых не указан правильный ключ API, указанный в заголовках запросов, и я не уверен, как добавить его в представления JWT Django Rest Framework, включая obtain_jwt_token,refresh_jwt_token и verify_jwt_token.Как мне это сделать?

1 Ответ

0 голосов
/ 01 декабря 2018

Это возможно путем расширения jwt-представления и использования вновь созданного представления.См. Пример ниже,

# permissions.py
from rest_framework.permissions import BasePermission


class MyPermissionClass(BasePermission):
    # do something with your permission class
    pass
# jwt_clone_views.py
from rest_framework_jwt.views import ObtainJSONWebToken, RefreshJSONWebToken, VerifyJSONWebToken

permission_cls = {"permission_classes": (MyPermissionClass,)}
obtain_jwt_token = ObtainJSONWebToken.as_view(**permission_cls)
refresh_jwt_token = RefreshJSONWebToken.as_view(**permission_cls)
verify_jwt_token = VerifyJSONWebToken.as_view(**permission_cls)
# urls.py
from .jwt_clone_views import obtain_jwt_token, refresh_jwt_token, verify_jwt_token


urlpatterns = [
    '',
    # ...

    url(r'^api-token-auth/', obtain_jwt_token),
    # and so on
]

Здесь я создал новый модуль с именем jwt_clone_views, который принимает классы разрешений в качестве параметра.
In urls.py, я использовал только что созданные представления, которые включают permission_classes


Примечание. Решение не проверялось.

...