[Django] 문자인증

김영환·2021년 1월 18일
1
post-thumbnail
  1. 유저가 핸드폰 번호를 입력한다.
  2. 해당 번호와 램덤 숫자 4자를 DB에 저장한 뒤, 인증 번호(랜덤 숫자)가 담긴 문자를 유저에게 보낸다. (인증번호 전송 API)
  3. 유저가 인증 번호를 입력한다.
  4. DB에서 유저의 휴대폰 번호와 인증 번호를 대조한 뒤 맞다면 Ture를, 틀리다면 False를 리턴한다. (인증번호 확인 API)
  1. 인증키를 생성해주자
  2. SMS API를 확인하여 코드를 작성해준다.
  3. 위의 sms api를 보면 header의 필수 항목들을 header 값에 맞춰서 넣어주면된다.
  4. signature-v2 함수 만들기
    • 개행문자는 \n을 사용한다
    • 요청에 맞게 StringToSign을 생성하고, SecretKey로 HmascSHA256 알고리즘으로 암호화한후 Base64로 인코딩한다.
    • 이 값을 x-ncp-apigw-signature-v2로 사용한다.
  1. body에 대한 필수값을 확인하고 코드 작성해준다. JSON 형식으로 진행할거니까 json은 {} 중괄호로 표시해준다.


    😳 여기서 "from" 값에 대한 번호는 미리 등록해줘야지 sms가 보내진다.
    나는 이거때매 하루종일 왜 안될까 고민했다는.... 😂
    ❗️등록한 발신번호와 from에 등록한 번호가 같아야합니다.

user.models.py/send_sms

user.views.py/SMSCheectView


.
로직을 다 구현하고 보면 정말 별거 없다. 프론트에서 휴대폰번호를 받고, 받은 휴대폰 번호에 1000~10000 사이의 번호를 임의로 생성하여 네이버클라우드 sms api를 이용해서 사용자에게 auth 번호를 보낸후 문자를 받은 사용자가 auth번호를 확인하여 입력하면 그 입력된 auth번호와 내가 db에 임의로 저장해둔 auth번호가 일치하는지 확인한 다음 result 값으로 true/false 만 보내주면 되는 로직이다. navercloud api를 한번 이용해 봤다는거에 대해 의의를 둔 코드였다

1개의 댓글

comment-user-thumbnail
2022년 4월 5일

ehdghl97@gmail.com 회원가입시 문자인증 로직을 개발 중에 있습니다.
코딩 초보자라 많은 어려움이 있는데 이런 좋은 게시글을 발견하게되어
해당 게시글과 관련해 질문이 있는데 메일로 소통 가능할까요??

답글 달기