브라우저 게임에서 연기된 등록
작동 방식
사용자는 브라우저에서 등록 없이 게임을 시작할 수 있습니다. 일정 시간이 지난 후에 사용자는 등록을 권유받게 되고 게임 진행 상황은 저장됩니다. 등록 대기 시간은 반드시 게임에서 구현되어야 합니다.
게임과 사용자 간의 상호작용 절차는 다음과 같습니다.
- 인증된 사용자가 게임을 시작합니다.
- 게임이 사용자를 세션 정보와 연관시킵니다.
- 일정 시간이 지난 후에 게임이 사용자에게 계속하려면 등록하기를 요청합니다.
- 게임이 등록 요청을 전달된 세션 정보와 함께 엑솔라 서버에 보냅니다.
- 엑솔라 로그인 서버가 사용자를 등록합니다. 등록의 결과로서 세션에 대한 정보는 사용자 JWT에서 전달됩니다.
- 게임은 진행 상황을 등록된 사용자에게 전송합니다.
- 사용자는 인증받음으로써 플레이를 계속합니다.
사용자
로그인을 이미 통합했으며 브라우저 게임을 보유한 파트너.
획득 방법
게임에서 등록 후에 사용자 진행 상황을 저장하는 방법:
사용자 세션에 대한 정보 전송 중
로그인 통합에 따른 사용자 세션에 대한 정보를 전달:로그인 API를 통한 통합
payload
매개 변수를
요청 예시(사용자 세션 식별자):
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 문자열):
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
매개 변수를 위젯 초기화 코드에 추가합니다. 이 매개 변수의 값으로 사용자 세션에 대한 정보를 지정합니다.
위젯 초기화 코드 예시(사용자 세션 식별자):
- html
<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 문자열):
- html
<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>
게임 진행 상황을 사용자에게 전송
등록 후에 사용자 세션에 대한 정보는 사용자 JWT의 payload
클레임에서 전달됩니다. 이 정보를 이용해 세션 동안에 받은 진행 상황을 전송합니다. 등록된 사용자의 식별자는 사용자 JWT의 sub
클레임에서 찾을 수 있습니다.
JWT 예시
- json
{
"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 예시
- json
{
"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"
}
오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.