개요
OneSignal은 사용자 사칭을 방지하는 데 도움이 되는 신원 확인이라는 향상된 보안 기능을 제공합니다. 이 기능은 서버에서 안전하게 생성되는 JSON Web Token(또는 JWT)을 사용합니다. 구독 정보를 확인하기 위해 이러한 토큰이 앱과 OneSignal의 API로 전달됩니다. 다음의 경우 신원 확인을 활성화하는 것이 좋습니다:- 사용자 로그인
- 이메일 구독 추가
- SMS 구독 추가
- 사용자 신원 수정
support@onesignal.com에 문의하여 이 기능을 활성화하세요.전제 조건
- 푸시 플랫폼이 구성된 기존 OneSignal 앱.
- 지원되는 SDK 중 하나와 통합된 모바일 앱:
설정
1
새 키 생성
OneSignal 계정에 로그인하고 설정 > 키 및 ID > 신원 확인으로 이동합니다.
새 키 생성을 클릭하여 새 키 쌍을 생성합니다.
PEM 파일을 다운로드하거나 개인 키를 복사하고 개인 키를 안전하게 저장해야 합니다.

신원 확인 구성

새 키 쌍 생성

신원 확인 키 쌍
항상 키 관리 시스템과 같은 안전한 환경에 개인 키를 저장하세요. 개인 키를 노출하지 마세요
2
백엔드에서 확인 JWT 생성
신원 확인을 위해서는 OneSignal에 로그인하기 전에 인증 서버로 최종 사용자를 인증해야 합니다. 최종 사용자가 백엔드로 인증하면 토큰을 생성하고 기기로의 인증 응답에 포함시킵니다. 앱이 백엔드 서버를 실행하지 않는 경우 사용자를 확인하고 이러한 토큰을 생성하기 위한 경량 서버 설정을 고려하세요.개인 키는 대시보드에서 다운로드한 이전 단계의 파일에 있습니다.
JWT 페이로드
JWT는 다음 속성을 가질 수 있습니다:OneSignal 앱 ID
토큰 만료 날짜.
사용자의 별칭.
subscriptions
사용자에게 이메일 및 SMS 구독을 추가할 때만 필요합니다.
JWT 서명
ES256 알고리즘을 사용하여 JWT에 서명합니다. JWT를 OneSignal로 전송할 때 확인 문제를 방지하려면 백엔드가 이 서명 방법을 사용하도록 구성되어 있는지 확인하세요. 이를 위해 JWT 라이브러리를 사용하는 것이 좋습니다.jsonwebtoken을 사용하는 예제:구독 포함
이상적으로는 사용자 로그인 시 이메일 또는 전화번호와 같은 구독 세부 정보가 JWT 페이로드에 포함됩니다. 이러한 세부 정보를 미리 사용할 수 없는 경우 확인 서버는 구독 정보를 사용할 수 있게 되면 토큰을 동적으로 생성하는 엔드포인트를 제공해야 합니다.예제: 구독을 추가하기 위한 JWT 생성3
`login` 메서드에 JWT 전달
백엔드가 JWT를 생성한 후 이를 사용하여
login 메서드를 호출합니다. 이 토큰은 이메일 또는 SMS 구독 추가와 같은 변경 사항이 적용되기 전에 사용자의 신원이 확인되도록 합니다.로그인 예제:4
JWT 수명 주기 이벤트 처리
토큰 무효화와 같은 시나리오를 처리하기 위해 백엔드에 전용 엔드포인트를 구현해야 합니다. 이 엔드포인트는 OneSignal이 업데이트를 요청할 때 새로고침된 JWT를 제공해야 합니다.토큰 무효화 처리 및 JWT 새로고침 예제:이를 통해 사용자의 JWT가 무효화되면 백엔드에서 새 JWT를 가져와 OneSignal로 전달할 수 있습니다. 인증 중에 생성된 토큰에 이메일 및 전화번호가 포함되지 않은 경우 이 기능을 사용하여 이메일 및 SMS 구독을 관리할 수 있도록 이메일 및 전화번호가 포함된 토큰을 생성할 수도 있습니다.
5
대시보드에서 토큰 신원 확인 활성화
설정 > 키 및 ID에서 토큰 신원 확인을 토글하여 활성화합니다.
활성화되면 앱은 구독 진위 여부를 확인하기 위해 OneSignal JWT를 전송해야 합니다. 또한 앱은 신원 확인 토큰 서버에서 생성된 JWT를 사용하여

토큰 신원 확인 활성화
login 메서드를 호출해야 합니다.구독 추가
모바일 앱에서 구독을 추가하기 위해 추가 단계를 수행할 필요가 없습니다. 로그인 메서드를 호출하면 자동으로 처리됩니다.- 이메일 추가
- 전화번호 추가
REST API
토큰 신원 확인이 활성화되면 다음 API에 대한 모든 요청은 헤더에 서버에서 생성된 JWT를 베어러 토큰으로 포함해야 합니다. 예:Authorization: Bearer <JWT>.