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

작동 방식

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

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

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

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

사용자

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

획득 방법

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

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

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

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

Login API를 통한 통합

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

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

Copy
Full screen
Small screen
http
  • http
  • curl
POST https://login.xsolla.com/api/user?login_url=https://example.com&projectId=00000000-0000-0000-0000-000000000000&payload=my_session_123 HTTP/1.1
Content-Type: application/json

{
  "username": "John Smith",
  "password": "123456",
  "email": "john-email@email.com"
}
curl --request POST \
  --url 'https://login.xsolla.com/api/user?login_url=https%3A%2F%2Fexample.com&projectId=00000000-0000-0000-0000-000000000000&payload=my_session_123' \
  --header 'content-type: application/json' \
  --data '{"username":"John Smith","password":"123456","email":"john-email@email.com"}'

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

Copy
Full screen
Small screen
http
  • http
  • curl
POST https://login.xsolla.com/api/user?login_url=https://example.com&projectId=00000000-0000-0000-0000-000000000000&payload={"coins":120,"lvl":2} HTTP/1.1
Content-Type: application/json

{
  "username": "John Smith",
  "password": "123456",
  "email": "john-email@email.com"
}
curl --request POST \
  --url 'https://login.xsolla.com/api/user?login_url=https%3A%2F%2Fexample.com&projectId=00000000-0000-0000-0000-000000000000&payload=%7B%22coins%22%3A120%2C%22lvl%22%3A2%7D' \
  --header 'content-type: application/json' \
  --data '{"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'
});
</script>

위젯 초기화 코드 예시(사용자 진행 상황에 대한 정보를 담은 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}'
});
</script>

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

등록 후에 사용자 세션에 대한 정보는 사용자 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"
}

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

답하기 원하지 않습니다

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

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

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