[DJANGO]미니 인스타그램 만들기④로그인 기능 구현

박민하·2022년 6월 19일
0

PROJECT

목록 보기
7/17

로그인&회원가입 정도만 지원하는 초미니 인스타그램을 구동할 수 있는 API 시스템을 만들어보자!


✅ 모델링 branch 생성

$ git checkout main # 브랜치 생성은 꼭 main 에서
$ git branch feature/signin

✅ 로그인 View 기능 정의

✔ 로그인 조건

  • 로그인을 할 때는 사용자 계정과 비밀번호가 필수 항목.
  • 계정이나 패스워드 키가 전달되지 않았을 경우, {"message": "KEY_ERROR"}, status code 400 반환.
  • 계정을 잘 못 입력한 경우 {"message": "INVALID_USER"}, status code 401 반환.
  • 비밀번호를 잘 못 입력한 경우 {"message": "INVALID_USER"}, status code 401 반환.
  • 로그인이 성공하면 {"message": "SUCCESS"}, status code 200 반환.
class SignInView(View):
    def post(self, request):
        try:
            data     = json.loads(request.body)

            email    = data['email']
            password = data['password']

            if not User.objects.filter(
                email    = email, 
                password = password
                ).exists() :
                return JsonResponse({'message':'INVALED_USER'}, status=401)

            return JsonResponse({'message':'SUCCESS'}, status=200)
            
        except KeyError:
            return JsonResponse({'message':'KEY_ERROR'}, status=400)

✔ URFconf 정의 : users/apps.py에 내용 추가

#users/apps.py
from django.urls import path

from users.views import SignUpView, SignInView

urlpatterns = [
    path('/signup', SignUpView.as_view()),
    path('/signin', SignInView.as_view()),
]
  • 127.0.0.1:8000/signin 으로 POST를 보내면 로그인이 되겠다.

✅ 로그인 확인

httpie 설치 및 서버 접속은 회원가입때 했으니 생략

✔ 로그인

http -v POST 127.0.0.1:8000/users/signin email='cheolsu@gmail.com' password='cuty0110!!'

profile
backend developer 🐌

0개의 댓글