【发布时间】:2021-03-09 06:08:25
【问题描述】:
我正在关注this 教程来检查api_key 标头是否存在。该示例似乎用于身份验证目的,我无法弄清楚如何修复它。当我访问 API 端点时出现错误:
{
"detail": "You do not have permission to perform this action."
}
permisson.py
从 rest_framework.permissions 导入 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')
if 'api_key' in request.headers:
api_key_secret = request.headers['api_key']
if api_key_secret == 'adnan':
print('FOUND')
return api_key_secret == 'you'
views.py
from rest_framework import viewsets
from .models import App
from .serializers import AppSerializer
from rest_framework.decorators import action
from rest_framework.response import Response
from .permissions import Check_API_KEY_Auth
class AppView(viewsets.ModelViewSet):
queryset = App.objects.all()
permission_classes = (Check_API_KEY_Auth,)
serializer_class = AppSerializer
def show(self, request, format=None):
content = {
'status': 'request was permitted'
}
return Response(content)
我不需要用户身份验证,我只需要检查 API_KEY 是否存在,如果存在则查询表中的 db 并返回结果。
【问题讨论】:
标签: python django django-rest-framework