플랫폼 교차 계정

작동 방식

글로서리

게시자 계정에서 다음과 같은 로그인 프로젝트 유형에 액세스할 수 있습니다:

  1. 표준 로그인 프로젝트는 주 계정을 저장하는 데 사용되는 로그인 프로젝트입니다.
  2. 그림자 로그인 프로젝트는 플랫폼 계정을 저장하는 데 사용되는 로그인 프로젝트입니다.

주 계정은 표준 로그인 프로젝트에서 생성되어 플랫폼 계정에 연동되는 계정 유형입니다. 주 계정은 다른 플랫폼에서 플레이어를 식별하는 데 사용됩니다.

플랫폼 계정은 그림자 로그인 프로젝트에서 생성되어 명확한 퍼블리싱 플랫폼에 연결되는 계정 유형입니다. 플랫폼 계정은 다른 플랫폼 계정에 연동할 수 없습니다. 또한 주 계정에서 계정의 연결을 해제할 수 없습니다.

퍼블리싱 플랫폼은 게임 배포(예: Steam, PlayStation, Xbox 등)에 사용되는 게임 플랫폼입니다.

플랫폼 교차 계정은 주 계정 및 플랫폼 계정과 연동되는 계정입니다.

명확한 플랫폼 상에 게임이 있는 모든 사용자 계정은 그림자 로그인 프로젝트의 플랫폼 계정과 일치해야 합니다. 예를 들어, 사용자가 Xbox 및 PlayStation 플랫폼에 자신이 소유한 게임의 계정을 가지고 있는 경우, 그림자 로그인 프로젝트 플랫폼 계정은 해당 Xbox 및 PlayStation 플랫폼 계정에 연동되어 있어야 합니다.

플랫폼 교차 계정 사용

플랫폼 교차 계정을 사용하면 다음을 수행할 수 있습니다.

주 계정과 플랫폼 계정이 연동되어 있는 경우:

  1. 사용자가 플랫폼에서 인증합니다.
  2. 엑솔라 로그인 서버가 주 계정 토큰을 사용자에게 보냅니다.
  3. 엑솔라 로그인 서버는 주 계정 사용자를 인증합니다.

플랫폼 교차 계정을 사용하는 경우 토큰의 사용자 ID는 주 계정 ID와 동일합니다. JWT > sub 요청에서 사용자 ID를 찾을 수 있습니다.

계정 연동 플로우

사용자가 주 계정을 가지고 있으면 플랫폼에 인증하는 동안 플랫폼 계정에 연동시킬 수 있습니다. 플로우는 다음과 같습니다:

  1. 플레이어가 처음으로 게임 콘솔 플랫폼을 통해 게임에 들어갑니다.
  2. 게임 UI에는 플랫폼 계정을 주 계정에 연동시키라는 메시지가 표시됩니다.
  3. 사용자는 애플리케이션을 시작하여 주 계정에서 인증합니다.
  4. 애플리케이션은 Create Code for Linking Accounts 요청을 엑솔라 로그인 서버에 보냅니다.
  5. 애플리케이션 UI는 계정 연동을 위한 코드를 사용자에게 표시합니다.
  6. 사용자는 게임의 콘솔 버전으로 돌아가서 코드를 입력합니다.
  7. 게임 서버는 Link Accounts by Code 요청을 엑솔라 로그인 서버에 보냅니다.
  8. 게임 콘솔은 확인 메시지를 표시합니다.

사용자

이미 로그인을 통합하고 퍼블리싱 플랫폼 계정을 보유한 파트너.

획득 방법

플랫폼 교차 계정을 통합하려면 다음과 같은 게시자 계정 파라미터가 필요합니다:

  • main_project_id — UUID 형식의 표준 로그인 프로젝트 ID. 예: f6c5011a-715e-4e5e-b7b1-a4812d85b8c8.
  • shadow_project_id — UUID 형식의 그림자 로그인 프로젝트 ID. 이 프로젝트는 그림자 로그인 프로젝트로 사용됩니다. 그림자 로그인 프로젝트를 생성하고 이에 대해 로그인 프로젝트 설정에서 publisher_project_id를 지정하십시오. shadow_project_id는 생성된 프로젝트의 ID입니다.
  • publisher_project_id — 프로젝트 ID. 이 파라미터는 프로젝트 설정 > 일반 설정 > 프로젝트 ID에 표시됩니다.

shadow_project_idpublisher_project_id 파라미터를 계정 관리자에게 보내 다음 OAuth 2.0 클라이언트 파라미터를 가져옵니다:

  • client_id — OAuth 2.0 클라이언트 ID
  • client_secret — OAuth 2.0 클라이언트 비밀 키
서버 토큰을 가져오기 위해 위의 파라미터를 사용할 수 있습니다.

플랫폼 교차 계정을 통합하는 알고리즘을 다음과 같습니다:

  1. 다음에 대해 사용자 인증 구현:
    1. 주 계정
    2. 플랫폼 계정
  2. 계정 연동:
    1. 연동 코드 가져오기
    2. 계정 연동

주 계정에서 사용자 인증

주 계정은 main_project_id로 지정된 로그인 프로젝트에서 생성됩니다. 로그인 위젯Login API 둘 모두를 등록 및 인증에 사용할 수 있습니다.

플랫폼 계정에서 사용자 인증

플랫폼을 통한 사용자 등록 및 인증을 위해서는 메소드를 선택하고 지침을 따릅니다. 메소드를 결합할 수 있습니다. 사례: 암묵인증을 Xbox 플랫폼 인증에 사용하고 다른 플랫폼에 다음을 통한 인증custom ID을 사용할 수 있습니다.

Custom ID를 통한 인증

플랫폼 계정을 만들려면, 게임 서버에서 Auth by Custom ID 방법을 사용하십시오. 이 방법에 다음 데이터를 전달하십시오:

  • publisher_project_id 또는 shadow_project_id 파라미터(전달되지 않으면 엑솔라 로그인 서버에서 오류를 반환합니다)
  • 서버 토큰
  • social_profile 파라미터
에 있는 사용자 플랫폼 계정 정보

이 인증 방법을 사용하면 다른 플랫폼에서 사용자 친구 목록을 가져올 수 없습니다. 인증에 사용할 수 있는 플랫폼 목록은 제한되어 있지 않습니다.

인증 플로우:

  1. 게임 클라이언트는 사용자가 게임을 시작할 때 인증 요청을 게임 서버에 보냅니다.
  2. 게임 서버는 custom ID를 생성하거나 기존 사용자 정의 ID를 사용합니다.
  3. 게임 서버는 플랫폼 및 사용자 식별자를 지정하여 Auth by Custom ID 요청을 엑솔라 로그인 서버에 보냅니다(platformuser_id 파라미터). 전달된 사용자 정의 ID를 가진 사용자를 찾을 수 없으면 새 사용자가 생성됩니다.
  4. 엑솔라 로그인 서버는 게임 서버에 토큰을 보냅니다.

요청 사례:

Copy
Full screen
Small screen
POST https://login.xsolla.com/api/users/login/server_custom_id?publisher_project_id=<publisher_project_id> HTTP/1.1

Host:
login.xsolla.com

Headers:
X-Server-Authorization: <server_token>
Content-Type: application/json

Body:
{
  "server_custom_id": "secret_value",
  "social_profile": {
    "platform": "xbox",
    "user_id": "123"
  }
}

응답 예제:

Copy
Full screen
Small screen
{
  "token": "<platform_user_token>"
}

암묵인증

암묵인증 레시피를 사용하여 설정합니다. 플랫폼 계정 생성을 위해 게임 서버에서 암묵인증 메소드를 사용합니다.

암묵인증 메소드를 사용하면, 다른 플랫폼으로부터 사용자 친구 목록을 가져올 수 있습니다. 암묵인증을 사용할 수 있는 플랫폼 목록은 레시피에 있습니다.

연동 코드 가져오기

연동 코드를 가져오려면 다음과 같이 하십시오:

  1. Create Code for Linking Accounts 방법을 사용합니다. 주 계정에서 인증하는 동안 받은 사용자 토큰을 이 방법에 전달합니다.
  2. 받은 코드를 사용자에게 표시합니다.

요청 사례:

Copy
Full screen
Small screen
POST https://login.xsolla.com/api/users/account/code HTTP/1.1

Host:
login.xsolla.com

Headers:
Authorization: Bearer <main_user_token>

응답 예제:

Copy
Full screen
Small screen
{
  "code": "123456"
}

계정 연동

Link Accounts by Code 메소드를 사용하여 플랫폼 계정을 주 계정에 연동시킵니다. code 매개 변수를 사용자가 콘솔 플랫폼에 입력한 연동 코드 값과 함께 이 메소드에 전달하세요.

요청 사례:

Copy
Full screen
Small screen
POST https://login.xsolla.com/api/users/account/link HTTP/1.1

Host:
login.xsolla.com

Headers:
X-Server-Authorization: <server_token>
Content-Type: application/json

Body:
{
  "code": "123456",
  "platform": "xbox",
  "user_id": "123",
  "publisher_project_id": 44056
}

응답 예제:

Copy
Full screen
Small screen
HTTP/1.1 204 No Content