首页 > 解决方案 > DRF - 使 api 仅对已知客户可用

问题描述

我有一个 DRF api,它没有任何身份验证系统(因为 a 的概念在user那里毫无意义)。但我想让 api 仅限于已知客户。换句话说,我想提出api-to-api身份验证而不是user-to-api身份验证。这可能在 DRF 中吗?那里有现成的库吗?

标签: django-rest-framework

解决方案


您可以为此使用权限类。定义继承自的权限类permissions.BasePermission

from rest_framework import permissions


class SamplePermission(permissions.BasePermission):
    def has_permission(self, request, view):
        return request.META.get('HTTP_YOUR_KEY','') in ['some_key']

并在您的视图中将其定义为 permission_classes

class SampleViewSet(views.APIView):
    ...
    permission_classes = [SamplePermission]

我不能说这是最好的方法,但你可以使用它。


推荐阅读