我有一个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)