# SMS API를 활용하여 휴대폰 인증 간단하게 붙이기
간단하게 휴대폰 인증을 할 일이 생겨서 2가지 선택지를 고민 했는데
1. NICE아이디 휴대폰본인확인, 2. SMS API 활용하여 인증
2번을 선택하여 NCloud의 Simple & Easy Notification Service를 사용하기로 했다.
(프론트는 Next.js, 백은 NestJS를 사용한다.)
제공해주는 API 명세를 보고 그대로 사용해야 하는데 헤더값중에 x-ncp-apigw-signature-v2 값을 어떻게 넣어줘야 하는지 처음에 이해가 잘 안됐다. 설명에는 - 위 예제의 Body를 Access Key Id와 맵핑되는 SecretKey로 암호화한 서명, - HMAC 암호화 알고리즘은 HmacSHA256 사용 이렇게 나와 있었는데 조금 삽질을 하다가 블로그 및 공식 예제를 보고 적용할 수 있었다.
SMS 전송 API의 Header
Content-Type: application/json; charset=utf-8
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}
|
인증 번호를 받고 유효 시간은 3분으로 잡고 진행했다. 큰 이유는 없고 다른 서비스들을 보니 3분을 많이 쓰는 것 같았다.
인증 번호를 검증하는 과정에서 여러 경우의 수를 생각했다.
1. 인증 번호를 받았는데 3분 이내에 다시 받으려는 경우 -> 에러와 인증 번호가 아직 유효하다는 메시지
2. 인증을 하고 추가 작업까지 완료한 경우에 인증 번호를 받으려는 경우 -> 에러와 이미 작업을 완료한 상태라는 메시지
3. 인증 번호를 받고 입력할 때 일치하지 않는 경우 -> 에러와 일치하지 않다는 메시지
4. 인증 번호를 받고 입력할 때 3분이 지난 경우 -> 에러와 유효시간이 지났다는 메시지
그리고 다시 한 번 경험이 중요하다고 많이 느껴졌다. 처음해보니 고민해야할 부분이 많았다.
현재 개발하고 있는 과정이지만 새로운 걸 하면서 기존의 것을 응용하는 과정에서 얻는 게 많은 것 같다.
'TIL > 일일 회고' 카테고리의 다른 글
[일일 회고] 2023-04-22 (토) (0) | 2023.04.23 |
---|---|
[일일 회고] 2023-04-21 (금) (0) | 2023.04.23 |
[일일 회고] 2023-04-19 (수) (0) | 2023.04.23 |
[일일 회고] 2023-04-18 (화) (0) | 2023.04.23 |
[일일 회고] 2023-04-17 (월) (0) | 2023.04.19 |