Mini Project|Westagramログインエンドポイントの実装


[タスク3]Westagramログインエンドポイントの実装


Westagram機能を実装する最初のタスクである会員加入ポイントを完了し、ログインポイントを実現します.

Mission

  • Instagramに会員登録する場合は、電話番号、ユーザー名、Eメールなどのユーザーアカウントが必要です.
  • Instagramにログインするにはパスワードが必要です.
  • アカウントまたは暗号鍵が送信されていない場合、{"メッセージ":"KEY ERROR"}は、ステータスコード400に戻る.
  • アカウントが存在しない場合、またはパスワードが正しくない場合、{"メッセージ":"INVALID USER"}は、ステータスコード401に戻る.
  • ログインに成功すると{"メッセージ":"SUCCESS"}ステータスコード200に戻る.
  • 1) views.py


    ログインviewは会員の口より少し簡単な感じがします.正しいユーザー情報さえあれば成功するので、keyerrorや無効なユーザーを渡すだけです.ログインビュー.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="[email protected]" password="asdf1234"

    4) Git push


    会員の入社エンドポイントを実施した後、既存のブランチに押し込もうとし、signupブランチに押し込もうとしたが、ブランチを再生成する過程で、かつて働いていたビューは消えてしまった.まずgithubに既存のブランチが押されたのは幸いなことですが、引き直せばよかったのですがgitは馴染みがないのでまたクローン化されてめちゃくちゃに...
    これからはgitを使うのが基本で、慣れる練習をしなければなりません.
    git status				# 현재 브랜치에서 변경사항 확인
    git add .				# 변경사항 모두 저장
    git commit -m "로그인 기능 구현"		# 변경된 사항에 대한 설명 문구 남기기
    git push origin feature/signin		# github에 push
    git log					# git 관련 수행내용 확인