로그인 기능 구현 (LoginView)

brian·2022년 5월 16일
0

예외처리

1. 아무런 입력값 없이 login 요청할 경우, JSONDecodeError 반환(REQUEST_WITHOUT_DATA, 400)

except json.decoder.JSONDecodeError :
    return JsonResponse({"MESSAGE": "REQUEST_WITHOUT_DATA"}, status=400)

2. 'email' 또는 'password'가 전달되지 않을 경우, KeyError 반환(KEY_ERROR, 400)

except KeyError :
    return JsonResponse({"MESSAGE": "KEY_ERROR"}, status=400)


email은 필드명이 기재되어 ""빈 데이터로 전달은 되었으나, password 가 전달되지 않아 KeyError 반환 (400) < 아래 예시와 비교>

3. email 또는 password가 일치하지 않을 경우, 에러반환 (INVALID_USER, 401)

	if not Accounts.objects.filter(email=email, password=password).exists() :
    	raise ValidationError("INVALID_USER")
    
    ...

except ValidationError as verr :
    return JsonResponse({"MESSAGE": verr.message}, status=401)


email, password 가 모두 전달되었으나, 일치하는 데이터가 없어 (INVALID_USER, 401) 반환

로그인 성공

	return JsonResponse({"MESSAGE": "SUCCESS"}, status=201)

DB에 저장된 email과 password 비교하여 올바른 값을 입력할 경우, (SUCCESS, 201) 반환

(생각해볼점) 로그인 성공시 왜 Created라고 표출될까 ?

(출처 : https://developer.mozilla.org/en-US/docs/Web/HTTP/Status)

해석하면, 일반적인 POST 또는 PUT 응답에 대한 일반적인 응답이라는 내용이다.

3개의 댓글

comment-user-thumbnail
2022년 5월 19일

치영님 ~ 열심히 하시는 모습 보기 좋습니다 화이또!!!

1개의 답글
comment-user-thumbnail
2022년 5월 19일

매우 정성스러운 글인데요?!🤩....

답글 달기