인증을 위해 JWT 토큰을 사용하는 사용자의 first_name 필드를 업데이트하려고합니다. 사용자 이름과 암호 필드가없는 다른 테이블에서 작업 할 때 어떤 이유로 쉽게 그것을하고 JWT 토큰을 사용하여 세부 정보를 업데이 트하십시오. 하지만 장고 사용자 모델 기본 테이블에서 할 때 요청에 사용자 이름과 암호를 포함하도록 요청합니다. 심지어 업데이트하지 않을 수도 있습니다. 여기에 내가 인증 헤더를 잘 설정해야하고 다른 요구와 함께 작동하더라도 우편 배달부에게PUT 요청이있는 Django JWT 인증
{
"username": [
"This field is required."
],
"password": [
"This field is required."
]
}
를 사용하여 요청을 보낼 때 나는 점점 오전 오류가 있지만, 사용자 정보를 업데이트 할 때, 나는 포함하지 필요한 모든을 및 기본 인증 클래스. 어떤 도움을 주셔서 감사 드리며,이 작은 일을 4 일 동안 해결하려고 노력하고 있습니다.
컬 명령은
curl -H "Authorization: JWT <token>" -X GET http://localhost:8000/user/3/
주의 사항 다른 방법을 작업
curl -H "Authorization: JWT <token>" -X PUT http://localhost:8000/user/3/ -d '{"first_name":"curl_test"}'
컬 명령을 작동하지 않습니다. 내 views.py (된 UserDetails 클래스) 내가 서명이 만료 무엇입니까 요청에는 오래 된 토큰을 보낼 때 JWT가 완전히 작동하고
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
'rest_framework.authentication.BasicAuthentication',
'rest_framework.authentication.SessionAuthentication',
),
'DEFAULT_PARSER_CLASSES': (
'rest_framework.parsers.FormParser',
'rest_framework.parsers.MultiPartParser',
'rest_framework.parsers.JSONParser',
)
}
class UserDetail(APIView):
permission_classes = (IsOwner, IsAuthenticated)
"""
Retrieve, update or delete a user instance.
"""
def get_object(self, pk):
try:
return User.objects.get(pk=pk)
except User.DoesNotExist:
raise Http404
def get(self, request, pk, format=None):
user = self.get_object(pk)
serializer = UserSerializer(user)
return Response(serializer.data)
def put(self, request, pk, format=None):
user = self.get_object(pk)
serializer = UserSerializer(user, data=request.data)
if serializer.is_valid():
serializer.save()
user = Profile.objects.get(id=pk)
user.profile.updated = timezone.now()
user.save()
return Response(serializer.data, status=status.HTTP_200_OK)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def delete(self, request, pk, format=None):
user = self.get_object(pk)
user.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
내 settings.py하지만 때 내가 넣어 사용자 이름/비밀번호를받는 최신 토큰은 필수 필드입니다.
시도는'사용 patch' 방법 –
같은 오류 할 수 있습니다. JWT는 내가 사용자 이름과 암호를 포함하고 헤더에 토큰을 무시해야한다고 말했습니다. – Abdul
서버에 보내는 데이터의 json을 추가하십시오. –