본문으로 건너뛰기

권한 업그레이드

플레이어가 권한이 있는 세션을 받은 후 추가 권한을 허용하고 싶을 수 있습니다. 권한은 다음과 같은 이유로 허용되지 않을 수 있습니다:

  1. 권한이 기본적으로 활성화되기 위한 연령 임계값 미만입니다.
  2. 권한에 필요한 절대 최소 연령 미만입니다.
  3. 권한은 부모/보호자의 동의가 있어야만 활성화할 수 있으며 동의 프로세스 중에 활성화되지 않았습니다.

새 권한 요청

정보

/session/upgrade API를 사용하여 추가 권한을 활성화할 수 있습니다. managedBy 필드가 PLAYER로 설정된 요청된 권한은 즉시 활성화됩니다. managedByGUARDIAN으로 설정된 권한이 있는 경우 권한 변경에 동의하기 위해 신뢰할 수 있는 성인이 완료해야 하는 Challenge가 생성됩니다.

부모 동의 요청

권한을 활성화하기 위해 신뢰할 수 있는 성인 동의가 필요한 경우 응답에 challenge가 포함됩니다. 이 Challenge는 초기 연령 게이트 프로세스와 유사하게 QR 코드, OTP 또는 이메일을 사용하여 공유할 수 있습니다. 자세한 내용은 Challenge를 참조하세요.

생활 품질 차이 중 하나는 /challenge/send-email API를 이메일 주소를 지정하지 않고 사용할 수 있으며 API가 플레이어에 대한 권한을 가장 최근에 승인한 신뢰할 수 있는 성인에게 이메일을 보낸다는 것입니다. 이를 통해 플레이어는 자신의 이메일 주소를 지정하지 않고 권한 변경을 요청할 수 있습니다. 연결된 이메일 주소를 찾을 수 없는 경우 /challenge/send-email API는 INVALID_EMAIL 오류 코드로 응답하며 QR 코드 제공, OTP 제공 또는 플레이어에게 신뢰할 수 있는 성인의 이메일 주소를 입력하도록 요청하는 것과 같은 다른 방법으로 대체해야 합니다.

요청 예시

POST /api/v1/session/upgrade
Content-Type: application/json
Authorization: Bearer your-api-key

{
"sessionId": "608616da-4fd2-4742-82bf-ec1d4ffd8187",
"requestedPermissions": [
{
"name": "voice-chat"
}
]
}

Challenge가 있는 응답 예시

권한에 보호자 동의가 필요한 경우 응답에 Challenge가 포함됩니다:

{
"status": "CHALLENGE",
"challenge": {
"challengeId": "683409f1-2930-4132-89ad-827462eed9af",
"oneTimePassword": "ABC123",
"type": "CHALLENGE_PARENTAL_CONSENT",
"url": "https://family.k-id.com/authorize?otp=ABC123"
}
}

Challenge가 없는 응답 예시

요청된 모든 권한을 플레이어가 활성화할 수 있는 경우 응답에 업데이트된 세션이 포함됩니다:

{
"status": "PASS",
"session": {
"sessionId": "608616da-4fd2-4742-82bf-ec1d4ffd8187",
"permissions": [
{
"enabled": true,
"managedBy": "PLAYER",
"name": "voice-chat"
}
]
}
}

업그레이드 흐름 처리

  1. 권한 확인: 업그레이드를 요청하기 전에 현재 세션을 확인하여 사용 가능한 권한과 보호자 동의가 필요한 권한 확인
  2. 업그레이드 요청: 요청된 권한으로 /session/upgrade 호출
  3. Challenge 처리: Challenge가 반환되면 초기 VPC 흐름과 동일한 워크플로 따르기
  4. 세션 업데이트: 동의가 부여되면 /session/get를 사용하여 업데이트된 세션 검색