如何在DRF JWT视图上设置自定义权限类?

时间:2018-11-30 23:57:30

标签: django-rest-framework django-rest-framework-jwt

我有一个自定义权限类,可以拒绝任何没有在请求标头中提供正确API密钥的请求,而且我不确定如何将其添加到Django Rest Framework JWT视图中,包括{{1} },obtain_jwt_tokenrefresh_jwt_token。我该怎么做?

1 个答案:

答案 0 :(得分:1)

可以通过扩展jwt-view并使用新创建的视图来实现。参见下面的示例,

# 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 的新模块,该模块将权限类作为参数。
urls.py中,我使用了新创建的视图,其中包括 permission_classes


注意:我没有测试解决方案。