플랫폼 간 계정

작동 방식

글로서리

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

  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
http
  • http
  • curl
POST https://login.xsolla.com/api/users/login/server_custom_id?publisher_project_id=<publisher_project_id> HTTP/1.1
X-Server-Authorization: <server_token>
Content-Type: application/json

{
  "server_custom_id": "secret_value",
  "social_profile": {
    "platform": "xbox",
    "user_id": "123"
  }
}
curl --request POST \
  --url 'https://login.xsolla.com/api/users/login/server_custom_id?publisher_project_id=publisher_project_id' \
  --header 'content-type: application/json' \
  --header 'x-server-authorization: server_token' \
  --data '{"server_custom_id":"secret_value","social_profile":{"platform":"xbox","user_id":"123"}}'

응답 예제:

Copy
Full screen
Small screen
HTTP/1.1 200 OK
Content-Type: application/json

{
  "token": "<platform_user_token>"
}

암묵인증

암묵인증 지침을 따라 설정합니다. 플랫폼 계정 생성을 위해 게임 서버에서 암묵인증 호출를 사용합니다.

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

연동 코드 가져오기

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

  1. Create code for linking accounts 호출을 사용합니다. 주 계정에서 인증하는 동안 받은 사용자 토큰을 이 호출에 전달합니다.
  2. 받은 코드를 사용자에게 표시합니다.

요청 사례:

Copy
Full screen
Small screen
http
  • http
  • curl
POST https://login.xsolla.com/api/users/account/code HTTP/1.1
Authorization: Bearer <main_user_token>
curl --request POST \
  --url https://login.xsolla.com/api/users/account/code \
  --header 'authorization: main_user_token'

응답 예제:

Copy
Full screen
Small screen
HTTP/1.1 200 OK
Content-Type: application/json

{
  "code": "123456"
}

계정 연동

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

요청 사례:

Copy
Full screen
Small screen
http
  • http
  • curl
POST https://login.xsolla.com/api/users/account/link HTTP/1.1
X-Server-Authorization: <server_token>
Content-Type: application/json

{
  "code": "123456",
  "platform": "xbox",
  "user_id": "123",
  "publisher_project_id": 44056
}
curl --request POST \
  --url https://login.xsolla.com/api/users/account/link \
  --header 'content-type: application/json' \
  --header 'x-server-authorization: server_token' \
  --data '{"code":"123456","platform":"xbox","publisher_project_id":44056,"user_id":"123"}'

응답 예제:

Copy
Full screen
Small screen
HTTP/1.1 204 No Content

이 기사가 도움이 되었나요?
감사합니다!
개선해야 할 점이 있을까요? 메시지
유감입니다
이 기사가 도움이 안 된 이유를 설명해 주세요. 메시지
의견을 보내 주셔서 감사드립니다!
메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.
이 페이지 평가
이 페이지 평가
개선해야 할 점이 있을까요?

답하기 원하지 않습니다

의견을 보내 주셔서 감사드립니다!
마지막 업데이트: 2021년 4월 12일

오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누릅니다.

문제 보고
콘텐츠를 항상 검토합니다. 여러분의 피드백은 콘텐츠를 개선에 도움이 됩니다.
후속 조치를 위해 이메일을 제공해 주세요
의견을 보내 주셔서 감사드립니다!