- 계정 보호: 무단 접근을 방지하면 지원 비용, 사기 손실, 평판 손상을 줄일 수 있습니다
- 전화번호 검증: OTP가 전달되고 올바르게 입력되면 해당 번호가 실재하고 활성 상태이며 번호를 제출한 사람이 소유하고 있음을 확인할 수 있습니다
- 입구에서의 사기 방지: 계정 생성 시 OTP는 가짜 가입, 봇 계정, 악용을 억제합니다
- 규제 및 컴플라이언스 기준: 특정 산업(금융, 의료)에서는 다중 요소 인증이 필수입니다. SMS OTP는 앱 설치 없이 모든 휴대폰에서 작동하므로 가장 접근성이 높은 방법입니다
- 계정 생성: 가입 시 신규 사용자의 전화번호 확인
- 로그인 / 2단계 인증: 비밀번호 외에 두 번째 검증 계층 추가
- 비밀번호 재설정: 자격 증명 변경을 허용하기 전 신원 확인
- 거래 확인: 송금이나 주소 변경과 같은 고가치 작업 검증
동의 요구 사항
OTP 메시지에 대한 동의는 트랜잭션 메시지와 동일한 기준을 따릅니다. 사용자가 고지 문구가 포함된 양식에 전화번호를 입력하는 것으로 충분한 옵트인이 됩니다. 고지 문구는 별도의 페이지나 서비스 약관에 묻혀 있는 것이 아니라 전화번호 입력란 바로 위 또는 근처에 표시되어야 합니다.필수 고지 문구
고지 문구 요구 사항 및 전체 OTP 옵트인 컴플라이언스 규칙.
OTP 메시지 전송 방법
OneSignal로 OTP 메시지를 전송하는 방법은 두 가지가 있습니다:| 방법 | 적합한 대상 | 직접 관리하는 항목 |
|---|---|---|
| OneSignal Verify (권장) | 코드 생성, 전달, 검증을 대신 처리하는 관리형 솔루션을 원하는 팀 | 구성만 |
| 직접 구축 | 사용자 지정 검증 로직이 필요하거나 이미 코드 생성 시스템을 보유한 팀 | 코드 생성, 저장, 만료, 속도 제한, 검증 |
OneSignal Verify
Verify는 OneSignal SMS 고객에게만 제공됩니다(Twilio 통합은 해당되지 않음).
인증 코드 전송
사용자의 전화번호와 채널(
sms)을 제공합니다. 선택적으로 사용자 지정 코드를 지정하거나 코드 길이를 재정의할 수 있습니다.기본적으로 최종 사용자에게 전송되는 메시지는 다음과 같이 표시됩니다: “귀하의 [브랜드명] 인증 코드는: XXXXXX입니다.”추가 고려 사항
- 만료: 코드는 기본적으로 10분 후에 만료됩니다. 맞춤 설정하려면 지원팀에 문의하세요.
- 재시도: 실패한 인증 시도를 처리하고 앱에서 재시도 로직을 구현하세요.
- 보안: 전화번호 및 인증 코드와 같은 민감한 데이터를 처리하기 위한 모범 사례를 따르세요.
직접 구축하는 코드 인증
직접 백엔드에서 코드 생성, 만료 추적, 시도 검증 등 검증 로직을 직접 관리할 수도 있습니다. 이 방식에서는 OneSignal Create Message API를 통해 표준 API 트리거 SMS로 OTP 메시지를 전송합니다.OneSignal API를 통해 전송
수신자의 전화번호, OTP 발신자, 코드가 포함된 메시지 본문(예: “귀하의 [브랜드명] 인증 코드는 847291입니다. 10분 후에 만료됩니다.”)과 함께 Create Message 엔드포인트를 호출합니다.
직접 처리해야 할 책임
- 코드를 안전하게 생성하고 저장하기
- 만료 적용: 코드가 무기한 유효해서는 안 됩니다
- 속도 제한: SMS 펌핑 사기를 방지하기 위해 단일 전화번호가 특정 기간 내에 요청할 수 있는 코드 수를 제한합니다
- 시도 횟수 제한: 무차별 대입 공격을 방지하기 위해 정해진 횟수(예: 3~5회)의 입력 실패 후 잠금 처리합니다
- 재시도 로직: SMS 전달 실패 사례 처리하기
전용 발신자 모범 사례
OTP 메시지는 어떤 발신자에서도 전송할 수 있지만, 인증 용도로 승인된 전용 발신자를 사용하는 것이 모범 사례입니다. OTP 메시지가 프로모션 또는 트랜잭션 메시지와 발신자를 공유하는 경우, 한 번의 STOP 옵트아웃으로 사용자가 더 이상 인증 코드를 받을 수 없게 되어 사실상 자신의 계정에서 잠기게 됩니다. 전용 OTP 발신자는 옵트아웃 범위를 한정하여 마케팅 구독 취소가 보안 코드를 차단하지 않도록 합니다.오디언스 검증
OTP 전달성을 위해서는 깨끗한 구독자 목록이 필수적입니다. 유효하지 않거나 연결이 끊긴 번호는 인증 코드가 사용자에게 도달하지 못함을 의미하며, 이는 계정 생성을 차단하고 사용자를 비밀번호 재설정에서 잠그게 하며 인증 흐름에 대한 신뢰를 약화시킬 수 있습니다. 수집 시점에 Lookup으로 전화번호를 검증하고, 승인된 발신자 리소스를 보유한 지역의 번호만 수집하며, 모든 번호를 E.164 형식(예:+14155551234)으로 저장하세요.
오디언스 검증
Lookup, 지역 제한, 소유권 확인, E.164 형식에 대한 전체 세부 정보.
FAQ
OneSignal Verify와 직접 OTP를 구축하는 것의 차이점은 무엇인가요?
OneSignal Verify는 코드 생성, 전달, 검증을 대신 처리합니다. 구성만 관리하면 됩니다. 직접 구축하면 검증 로직에 대한 더 많은 제어권을 가질 수 있지만, 코드 생성, 저장, 만료, 속도 제한, 재시도 처리에 대한 책임을 지게 됩니다. OneSignal Verify는 OneSignal SMS 고객에게만 제공됩니다(Twilio 통합은 해당되지 않음).OneSignal Verify에서 인증 코드는 얼마나 오래 유지되나요?
코드는 기본적으로 10분 후에 만료됩니다. 만료 기간을 맞춤 설정하려면 OneSignal 지원팀에 문의하세요.OTP에 전용 발신자가 필요한 이유는 무엇인가요?
사용자가 OTP와 다른 메시지 유형을 모두 처리하는 발신자에게 STOP을 문자로 보내면, 인증 코드를 포함하여 해당 발신자의 모든 메시지에서 옵트아웃됩니다. 이로 인해 사용자가 자신의 계정에서 잠길 수 있습니다. 전용 OTP 발신자는 옵트아웃 범위를 깔끔하게 한정합니다.OTP 전달에 실패하면 어떻게 되나요?
OneSignal Verify를 사용하는 경우 광범위한 전달 실패가 보이면 지원팀에 문의하세요. 직접 구축하는 경우 백엔드에서 재시도 로직을 구현하고 Audience Activity에서 오류 코드를 모니터링하세요. 오류 코드 문제 해결은 SMS 메시지 보고서를 참조하세요.계정 생성 확인에 OTP 메시지를 사용할 수 있나요?
예. 이것은 가장 일반적인 사용 사례 중 하나입니다: 가입 시 코드를 전송하여 사용자가 제공한 전화번호를 소유하고 있는지 확인합니다. 이 단계에서 Lookup을 사용하여 전송하기 전에 번호를 검증할 수도 있습니다.관련 페이지
SMS 옵트인 및 수집
모든 프로그램 유형에 대한 수집 방법, 필수 고지 문구, 오디언스 검증.
트랜잭션 메시징
OTP 프로그램과 함께하는 트랜잭션 사용 사례 및 수집 지점.
SMS 메시지 보고서
OTP 실패 문제 해결을 위한 전달 지표 및 SMS 오류 코드.
Create Message API
백엔드에서 OTP 및 트랜잭션 전송을 트리거하기 위한 API 참조.