이 전 포스팅에서는 회원가입 기능을 구현해보았다.
회원가입을 했으면 그 정보를 이용하여 로그인을 할 수 있어야하겠지?
로그인은 회원가입에 비해 좀 더 간단한 것 같다.
# users/views.py
import json
from django.http import JsonResponse
from django.views import View
from .models import User
from .validation import email_validation, password_validation
class SignUpView(View):
...
...
class LoginView(View):
def post(self, request):
try:
data = json.loads(request.body)
email = data["email"]
password = data["password"]
if not User.objects.filter(password = password, email = email).exists():
return JsonResponse( {"message" : "INVALID_USER"}, status = 401) #1
return JsonResponse( {"massege" : "SUCCESS"}, status = 200) #2
except KeyError:
return JsonResponse( {"message" : "KEY_ERROR"}, status = 400)
#1password나 email의 값이 잘못 입력되었을 경우 INVALID_USER 메세지와 함께 401 에러를 반환한다.#2SUCCESS메세지를 보여준다.# users/urls.py
from django.urls import path
from .views import SignUpView, LoginView
urlpatterns = [
# http://127.0.0.1:8000/users/signup
path('/signup', SignUpView.as_view()),
# http://127.0.0.1:8000/users/login
path('/login', LoginView.as_view())
]