브라우저 게임에서 연기된 등록

작동 방식

사용자는 브라우저에서 등록 없이 게임을 시작할 수 있습니다. 일정 시간이 지난 후에 사용자는 등록을 권유받게 되고 게임 진행 상황은 저장됩니다. 등록 대기 시간은 반드시 게임에서 구현되어야 합니다.

게임과 사용자 간의 상호작용 절차는 다음과 같습니다.

  1. 인증된 사용자가 게임을 시작합니다.
  2. 게임이 사용자를 세션 정보와 연관시킵니다.
  3. 일정 시간이 지난 후에 게임이 사용자에게 계속하려면 등록하기를 요청합니다.
  4. 게임이 등록 요청을 전달된 세션 정보와 함께 엑솔라 서버에 보냅니다.
  5. 엑솔라 로그인 서버가 사용자를 등록합니다. 등록의 결과로서 세션에 대한 정보는 사용자 JWT에서 전달됩니다.
  6. 게임은 진행 상황을 등록된 사용자에게 전송합니다.
  7. 사용자는 인증받음으로써 플레이를 계속합니다.

Note: 세션 식별자 또는 사용자 진행 상황에 대한 정보를 담은 JSON 문자열이 사용자 세션에 대한 정보로 전달됩니다.

사용자

로그인을 이미 통합했으며 브라우저 게임을 보유한 파트너.

획득 방법

게임에서 등록 후에 사용자 진행 상황을 저장하는 방법:

  1. 등록할 때 사용자 세션에 관한 정보 전달.
  2. 게임 진행 상황을 사용자에게 전송.

사용자 세션에 대한 정보 전송 중

로그인 통합에 따른 사용자 세션에 대한 정보를 전달:

API 메소드를 통한 통합

payload 매개 변수를 Register a New User 요청에 전달합니다. 이 매개 변수의 값으로 사용자 세션에 대한 정보를 지정합니다.

요청 예시(사용자 세션 식별자):

Copy
Full screen
Small screen
POST https://login.xsolla.com/api/user?login_url=https://example.com&projectId=00000000-0000-0000-0000-000000000000&payload=my_session_123

Headers:
Content-Type: application/json

Body:
{
  "username": "John Smith",
  "password": "123456",
  "email": "john-email@email.com"
}

요청 예시(사용자 진행 상황에 대한 정보를 담은 JSON 문자열):

Copy
Full screen
Small screen
POST https://login.xsolla.com/api/user?login_url=https://example.com&projectId=00000000-0000-0000-0000-000000000000&payload={"coins":120,"lvl":2}

Headers:
Content-Type: application/json

Body:
{
  "username": "John Smith",
  "password": "123456",
  "email": "john-email@email.com"
}

로그인 위젯을 통한 통합

payload매개 변수를 위젯 초기화 코드에 추가합니다. 이 매개 변수의 값으로 사용자 세션에 대한 정보를 지정합니다.

위젯 초기화 코드 예시(사용자 세션 식별자):

Copy
Full screen
Small screen
<script>
const xl = new XsollaLogin.Widget({
  projectId: '00000000-0000-0000-0000-000000000000',
  preferredLocale: 'en_US',
  callbackUrl: 'https://example.com',
  payload: 'my_session_123'
});

위젯 초기화 코드 예시(사용자 진행 상황에 대한 정보를 담은 JSON 문자열):

Copy
Full screen
Small screen
<script>
const xl = new XsollaLogin.Widget({
  projectId: '00000000-0000-0000-0000-000000000000',
  preferredLocale: 'en_US',
  callbackUrl: 'https://example.com',
  payload: '{"coins":120,"lvl":2}'
});

게임 진행 상황을 사용자에게 전송

등록 후에 사용자 세션에 대한 정보는 사용자 JWTpayload클레임에서 전달됩니다. 이 정보를 이용해 세션 동안에 받은 진행 상황을 전송합니다. 등록된 사용자의 식별자는 사용자 JWTsub 클레임에서 찾을 수 있습니다.

JWT 예시 payload (사용자 세션 식별자):

Copy
Full screen
Small screen
{
  "email": "john-email@email.com",
  "exp": 1597904900,
  "iat": 1597818500,
  "is_master": true,
  "iss": "https://login.xsolla.com",
  "payload": "my_session_123",
  "promo_email_agreement": true,
  "publisher_id": 0,
  "sub": "00000000-0000-0000-0000-000000000000",
  "type": "xsolla_login",
  "username": "John Smith",
  "xsolla_login_access_key": "422nH1zNMIVKCesi7r4YdQXQY-jgbf2CIcvGdCREDIA",
  "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000"
}

JWT 예시 payload (사용자 진행 상황에 대한 정보를 담은 JSON 문자열):

Copy
Full screen
Small screen
{
  "email": "john-email@email.com",
  "exp": 1597904900,
  "iat": 1597818500,
  "is_master": true,
  "iss": "https://login.xsolla.com",
  "payload": "{\"coins\":120,\"lvl\":2}",
  "promo_email_agreement": true,
  "publisher_id": 0,
  "sub": "00000000-0000-0000-0000-000000000000",
  "type": "xsolla_login",
  "username": "John Smith",
  "xsolla_login_access_key": "422nH1zNMIVKCesi7r4YdQXQY-jgbf2CIcvGdCREDIA",
  "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000"
}