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)