间歇性故障:Django Rest Framework Authentication



我有一个Django Rest Framework后端,它运行良好,但我遇到了以下间歇性错误:

{
"detail": "Invalid token."
}

在我的 settings.py

REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication', 
],
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.JSONRenderer',
)
}

我只保护我的一些端点,例如:

class ViewOrder(viewsets.ModelViewSet):
queryset = Order.objects.all()
serializer_class = OrderDetailSerializer
authentication_classes = (TokenAuthentication,)
def get_queryset(self):
user= self.request.user
queryset = Order.objects.filter(user=user)
return queryset
permission_classes = (IsAuthenticated,)

这工作正常,但是在我的一个视图中,我没有保护它,我得到第一个错误"详细信息:无效令牌">

class Verify(viewsets.ModelViewSet):
def create(self, request, *args, **kwargs):
phone = request.data['phone']
response = { 'status': 'failed' }
code = random.randint(1000,9999)
validator = Verify(email=email,code=code)
validator.save()

return JsonResponse(response,safe=False)

我不知道这个无效令牌 401 响应来自哪里。

任何帮助将不胜感激

设置中的DEFAULT_AUTHENTICATION_CLASSES应用于项目级别(全局(,请在此处查看参考。

如果要绕过视图类的权限,可以将视图类中的authentication_classes设置为"无",例如:

class Verify(viewsets.ModelViewSet):
permission_classes = []    # Optional
authentication_classes = []
def create(self, request, *args, **kwargs):
phone = request.data['phone']
response = { 'status': 'failed' }
code = random.randint(1000,9999)
validator = Verify(email=email,code=code)
validator.save()

return JsonResponse(response,safe=False)

最新更新