[Backend]로그인과 회원가입

SungjoonAn·2022년 2월 27일
0

Django

목록 보기
9/12
post-thumbnail

로그인과 회원가입

[회원가입 흐름]

회원가입 흐름

  1. 프론트엔드에게 api와 연결되어있는 엔드포인트와 서버의 ip주소를 알려줍니다.
  2. 해당 엔드포인트로 클라이언트에서 필요한 값(이메일, 비밀번호 등)을 body에 담아 request를 보냅니다.
{
    username="kimcode"
    last_name="kim"
    first_name="code"
    email="kimcode@gmail.com"
    password="password"
    phone_number="010-1234-1234"
}
  1. 받은 이메일의 중복 여부를 database 조회를 통해 확인합니다.
  2. 존재하는 이메일일 경우 Response로 에러메세지와 에러코드를 반환합니다.
  3. 입력 받은 이메일과 비밀번호의 형식이 사이트의 기준과 부합 하는지 확인합니다.
  4. 부합하지 않을 경우 Response로 에러메세지와 에러코드를 반환합니다.
    HTTP/1.1 404 Not Found
  5. 부합할 경우 database에 해당 회원의 정보를 저장하고 SUCCESS 메세지와 상태코드 201을 Response로 반환합니다.
    HTTP/1.1 201 SUCCESS

[로그인 흐름]

  1. 프론트엔드에게 api와 연결되어있는 엔드포인트와 서버의 ip주소를 알려줍니다.
  2. 해당 엔드포인트로 클라이언트에서 필요한 값(이메일, 비밀번호)을 body에 담아 request를 보냅니다.
{
    email="kimcode@gmail.com"
    password="password"
}
  1. 받은 이메일이 유효한 회원인지, database 조회를 통해 검증합니다.
  2. 존재하지 않는 이메일일 경우 Response로 에러메세지와 에러코드를 반환합니다.
  3. 존재하는 이메일일경우, 회원의 비밀번호와 입력 받은 비밀번호가 일치하는지 확인합니다.
  4. 일치하지 않을 경우 Response로 에러메세지와 에러코드를 반환합니다.
  5. 일치할 경우 해당 회원을 식별할 수 있는 값을 담아 token을 생성해 Response로 반환합니다.
#로그인 요청에 대해 성공했을 때 응답의 내용
{
    "message": "SUCCESS"
    "token": "kldiduajsadm@9df0asmzm" (암호화된 유저의 정보)
}    

[설정]

  1. 프론트엔드가 백엔드의 서버로 접속하기 위해서는 필요한 설정들이 있습니다.
  2. corsheaders, allowed_host, runserver 0:8000등을 주의해주세요
#allowed_host
ALLOWED_HOSTS = ['*']
#corsheader
CORS_ORIGIN_ALLOW_ALL  = True
CORS_ALLOW_CREDENTIALS = True
CORS_ALLOW_METHODS     = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
)
CORS_ALLOW_HEADERS = (
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
)

[Get과 Post의 차이점]

GETPOST와의 차이점은 클라이언트의 요청이 URL 뒤에 추가되어서 요청되는 점입니다. GET 방식(가져온다) 의 특징으로는 SELECT 쿼리문과 유사한 성격을 가지며, POST보다 전송속도가 빠릅니다. GET 방식은 caching(한번 접근 후, 또 요청할 시 빠르게 접근하기 위해 데이터를 저장시켜 놓는다)에 의하여 빠른 response를 나타냅니다.

0개의 댓글