API-KEY 基本请求认证
你可以使用 django rest framework 权限类来检查请求标头并验证用户请求
- 
在项目设置上定义你的 secret_key API_KEY_SECRET = 'secret_value'
注意:一个好的做法是使用环境变量来存储这个秘密值。
- 为 API-KEY 身份验证定义权限类
使用以下代码在你的应用目录上创建 permissions.py 文件:
from django.conf import settings
from rest_framework.permissions import BasePermission
class Check_API_KEY_Auth(BasePermission):
    def has_permission(self, request, view):
        # API_KEY should be in request headers to authenticate requests
        api_key_secret = request.META.get('API_KEY')
        return api_key_secret == settings.API_KEY_SECRET
- 将此权限类添加到视图
from rest_framework.response import Response
from rest_framework.views import APIView
from .permissions import Check_API_KEY_Auth
class ExampleView(APIView):
    permission_classes = (Check_API_KEY_Auth,)
    def get(self, request, format=None):
        content = {
            'status': 'request was permitted'
        }
        return Response(content)
或者,如果你正在使用带有基于函数的视图的 @api_view 装饰器
from rest_framework.decorators import api_view, permission_classes
from rest_framework.response import Response
from .permissions import Check_API_KEY_Auth
@api_view(['GET'])
@permission_classes((Check_API_KEY_Auth, ))
def example_view(request, format=None):
    content = {
        'status': 'request was permitted'
    }
    return Response(content)