Email validation


message.py
def message(doamin, uid64, token):
    return f"아래 링크를 클릭하면 회원가입 인증이 완료됩니다.\n\n회원가입 링크 : http://{doamin}/user/emailcheck/{uid64}/{token}\n\n감사합니다."

#domain- current site domain
#uid- urlsafe base64 encode force bytes (user.pk)
#token - account activation toekn make token(user)
settings.py
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = '587'
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = my_settings.DATABASES.password
EMAIL_USE_TLS = True
# TLS 보안 방법
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
# 사이트와 관련한 자동응답을 받을 이메일 주소,'webmaster@local

TlS

  • クライアント/サーバ環境でTCPベースのアプリケーションにエンドツーエンドのセキュリティサービスを提供するために作成されたトランスポート層セキュリティプロトコル.
  • SSL/TLSでは、対称鍵暗号、公開鍵暗号、一方向ハッシュ関数、メッセージ検証符号、擬似乱数生成器、電子署名を組み合わせて安全な通信を実行する.
  • SSL/TLSは、パスワードsweetを変更することによって、強力なアルゴリズムを使用することができる.
  • SSL/TLS上のHTTP


    SSLまたはTLSは、
  • 通信コンテンツを暗号化するプロトコルとして使用される.その後SSL/TLSにHTTPをアップロードします.
  • これをプロトコル二層構造と呼ぶことで、HTTPの通信を暗号化して盗聴を防止することができ、通信時にURLはhttps://先頭、
  • である.

    パスワードSweet(パスワードスイート)

  • SSL/TLSで使用される対称鍵暗号、公開鍵暗号、電子署名、一方向ハッシュ関数などの暗号技術に欠陥が見つかった場合、部品とともに交換することができる.
  • ですが、クライアントとサーバは同じパスワード技術を使用する必要があります.
  • class EmailCheckView(View):
        def post(self, request):
            try:
                data = json.loads(request.body)
                email = data.get('email', None)
                auth_number = random.randint(10000, 100000)
    
                if email:
                    validate_email(email)
                                       
                if Member.objects.filter(email = email).exists():
                    return JsonResponse({'message': 'EXISTS_USER'}, status=409) 
               
    
                mail_subject = "[SOT] 회원가입 인증 메일입니다."
                content = f"이메일 인증에 성공하셨습니다.\n\n인증번호는 {auth_number}"
                user_email = data['email']
                email = EmailMessage(mail_subject, content, to=[user_email])
                email.send()
    
                return JsonResponse({'message': 'SUCCESS'}, status=201)         
            except KeyError:
                return JsonResponse({'message': 'KEY_ERROR'}, status=400)   
    https://ssungkang.tistory.com/entry/Django-%E1%84%92%E1%85%AC%E1%84%8B%E1%85%AF%E1%86%AB%E1%84%80%E1%85%A1%E1%84%8B%E1%85%B5%E1%86%B8-%E1%84%89%E1%85%B5-%E1%84%8B%E1%85%B5%E1%84%86%E1%85%A6%E1%84%8B%E1%85%B5%E1%86%AF-%E1%84%8B%E1%85%B5%E1%86%AB%E1%84%8C%E1%85%B3%E1%86%BC-SMTP