这是我用于在 jwt 上创建令牌的注册 api
class RegisterView(APIView):
def post(self, request):
serializer = RegisterSerializer(data=request.data)
if serializer.is_valid():
user = serializer.save()
print(user)
refresh = RefreshToken.for_user(user)
return Response(
{
'status':200,
'message':'Phone Number Registered Successfully',
'refresh':str(refresh),
'access': str(refresh.access_token)
}
)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
然后我想通过这个 api 更新该记录但是在使用 IsAuthenticated 时它给了我 user_not_found.
@api_view(['PUT'])
@permission_classes([IsAuthenticated])
def set_mpin(request):
phone_number = request.data.get('phone_number')
print(phone_number)
if not phone_number:
return Response({'status': 400, 'message':'phone number required'})
try:
registered_phone = Register.objects.get(phone_number=phone_number)
print(registered_phone)
except Register.DoesNotExist:
return Response({'status': 400, 'message':'invalid phone number'})
serializer = SetMpinSerializer(registered_phone, data=request.data)
print(serializer)
if serializer.is_valid():
serializer.save()
return Response({'status':200, 'message':'MPIN Successfully Created'})
else:
return Response({'status':400, 'message':'Invalid'})
有人能解决这个问题吗?
我想更新那个记录
您可能应该在请求的标头中传递请求用户的访问令牌。例如:
>>> import requests
>>> response = requests.put(url, headers={'Authorization': 'auth_scheme user_token'}, data={'phone_number': 'user_phone_number'})