Mini Project | westagram 로그인 엔드포인트 구현

Hyeonju L.·2020년 12월 13일
0

Project

목록 보기
3/8
post-thumbnail

[Mission 3] westagram 로그인 엔드포인트 구현하기

westagram 기능구현의 첫 번째 미션이었던 회원가입 엔드포인트를 마무리하고 이어서 로그인 엔드포인트를 구현하고자 한다.

Mission

  • 인스타그램에 회원가입 할 때에는 사용자 계정(예:전화번호, 사용자 이름 또는 이메일 중 하나)이 필수로 필요합니다.
  • 인스타그램에 로그인 할 때에는 비밀번호가 필수로 필요합니다.
  • 계정이나 패스워드 키가 전달되지 않았을 시, {"message": "KEY_ERROR"}, status code 400 을 반환합니다.
  • 계정이 존재하지 않을 때나 비밀번호가 맞지 않을 때, {"message": "INVALID_USER"}, status code 401을 반환합니다.
  • 로그인이 성공하면 {"message": "SUCCESS"}, status code 200을 반환합니다.

1) views.py

로그인 view는 회원가입보다는 조금 간단한 느낌이었다. 올바른 이용자 정보가 들어오면 성공, 그렇지 않을 경우 key error나 invalid user만 전달하면 됐기 때문이다. 로그인 views.py는 회원가입뷰에 이어서 작성했다.

class SigninView(View):
    def post(self, request):
        data = json.loads(request.body)

        try:
            Users.objects.get(
                email = data['email'], 
                password = data['password']
            )
            return JsonResponse({"message":"SUCCESS"}, status = 200)

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

        except Users.DoesNotExist:
            return JsonResponse({"message":"INVALID_USER"}, status = 401)

2) urls.py

url 경로지정

# 경로: user/urls.py

from django.urls import path
from .views import SignupView, SigninView
 
urlpatterns = [
	path('/signup', SignupView.as_view()),
	path('/signin', SigninView.as_view())	# 상위경로(user)는 회원가입과 동일 > user/signin 
    	]

3) 결과

회원가입 엔드포인트 구현 시 대부분 세팅을 해놨기 때문에 로그인 뷰는 금방 작성할 수 있었다.
회원가입된 아이디로 로그인을 하면 아래와 같이 SUCCESS 메시지가 반환되는 것을 확인할 수 있다.

# 데이터 migration

python manage.py makemigrations user
python manage.py migrate

# 통신 (로그인)
http -v localhost:8000/user/signin email="hjlee@abc.com" password="asdf1234"

4) Git push

회원가입 엔드포인드를 구현하고 나서 기존 branch로 push를 했다가 signup branch로 push 하고 싶어 branch를 다시 생성하는 과정에서 작업했던 view가 다 사라지는 일이 발생했다. 일단 github에는 기존 branch가 push 되어있어 다행이었고 다시 pull했으면 됐을텐데 git이 익숙하지 않아 clone 다시 받고 난리난리..
앞으로 작업 시에 git 이용은 기본일테니 익숙해지도록 연습해야겠다.

git status				# 현재 브랜치에서 변경사항 확인
git add .				# 변경사항 모두 저장
git commit -m "로그인 기능 구현"		# 변경된 사항에 대한 설명 문구 남기기
git push origin feature/signin		# github에 push
git log					# git 관련 수행내용 확인

profile
What you think, you become. What you feel, you attract. What you imagine, you create.

0개의 댓글