[Django]会員加入と登録ver.3


1.会員加入(非暗号化)

import json, bcrypt

from django.views           import View
from django.http            import JsonResponse
from django.core.exceptions import ValidationError

from users.models           import User
from users.validation       import validate_check

class SignUpView(View):
    def post(self, request):

        data = json.loads(request.body)

        try:
            user_name      = data['name']
            user_email     = data['email']
            user_password  = data['password']
            user_phone     = data['phone']

            hased_pw = bcrypt.hashpw(user_password.encode('utf-8'), bcrypt.gensalt())
            decoded_hashed_pw = hased_pw.decode('utf-8')

            user_create     = User(
                name        = user_name,
                email       = user_email,
                password    = decoded_hashed_pw,
                phone       = user_phone,
            )

            validate_check(
                user_email,
                user_password,
            )

            user_create.full_clean()
            user_create.save()
        
            return JsonResponse({'message':'SUCCESS'}, status=201)

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

        except ValidationError as e: 
            return JsonResponse({'message':e.messages}, status=400)
->bcryptを用いて暗号化を行い,数十回の修正を経て,現在と同じコードラインアップを形成した.
->hased pwをtry文(外)に配置し、変数値ではなく直接データを受信するフォーマットで、次のコメントを受信します.

そこで暗号化部をtryに移動し,変数に設定した値を受け入れるように変更する.
-->さらに、2行の暗号化プロセスをcreateのpassword=()に移動し、1つの文に結合します.

2.ログイン

class SignInView(View):
    def post(self, request):

        try:
            data          = json.loads(request.body)
            user_email    = data['email']
            user_password = data['password']

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

            return JsonResponse({'message':'SUCCESS'}, status=200)

        except KeyError:
            return JsonResponse({'message':'KEY_ERROR'}, status=400)
->jwtのコイン生成法はまだ適用されていません.
->testで作成したブランチで種々の実験を行い,原因不明によりコード競合と混同を招いた.
->以前のバージョンを中心に再構築を行い、これまで発見されなかった会議ミスを修正して再建に成功しました.