# username, email 중복 검증
if get_user_model().objects.filter(username=username).exists():
return Response({"error":"이미 존재하는 사용자명입니다."}, status=status.HTTP_400_BAD_REQUEST)
from rest_framework_simplejwt.views import TokenBlacklistView
urlpatterns=[
path("logout/", TokenBlacklistView.as_view(), name="logout")
]
TokenBlacklistView를 통해서 가지고 있는 토큰을 무효화해서 로그아웃.유저 페이지 수정 진행 중
class UserPageAPIView(APIView):
## 유저 정보 페이지 GET
def get(self, request, username):
user = get_object_or_404(get_user_model(), username=username)
serializer = UserSerializer(user)
return Response(serializer.data)
## 유저 정보 수정
def get(self, request, username):
user = get_object_or_404(get_user_model(), username=username)
## 해당 유저일 때만 수정이 가능함
if request.user!=user:
return Response({"error":"권한이 없습니다."}, status=status.HTTP_403_FORBIDDEN)
## 소개, 비밀번호만 수정하기
user.introduction = request.data.get("introduction", user.introduction)
user.password = request.data.get("password", user.password)
## 비밀번호를 빈칸으로 제출 불가
if not user.password:
return Response({"message":"비밀번호를 입력해 주십시오."}, status = status.HTTP_400_BAD_REQUEST)
## 비밀번호 설정, 입력 받은 데이터 저장
user.set_password(user.password)
user.save()
return Response(status=status.HTTP_204_NO_CONTENT)