The following documentation was deprecated. Current version is available at developers.xsolla.com

Xsolla Login

Xsolla Login은 플레이어가 자신의 로컬 소셜 네트워크 계정을 게임에 연결할 수 있도록 합니다. 이를 통해 플레이어는 빠르고 쉽게 게임을 시작할 수 있습니다. 또한 Xsolla Login을 사용하는 플레이어는 결제 정보를 저장하여 나중에 원클릭으로 쉽고 편리하게 구매를 진행할 수 있습니다. 개발자는 Xsolla Login을 완벽하게 사용자 정의하여 게임의 일부로 나타나게 할 수 있습니다.

시작하기

다음 정보를 bizdev@xsolla.com로 보내어 귀하의 앱을 등록합니다.

등록 정보:

  • 사이트 - 웹사이트의 기본 도메인 이름(예: http://mysite.com).

  • Domain - 필요한 경우 여러 도메인 이름을 지정하고, 각각의 도메인에 동일한 하나의 projectID 를 사용합니다.

  • 가능한 인증 방법 목록:

    • 선택 - 로그인/암호,
    • SMS,
    • 소셜 네트워크(Facebook, Twitter, Steam, Twitch, VK, 네이버 등),
    • i-pin (BETA),
    • 다중 인증 (BETA),
    • 인증서 (BETA)
    • 로컬 소셜 인증 (BETA).

마지막으로, 귀하가 인증에 사용할 소셜 네트워크를 알려주세요.

회신으로 귀하의 projectIDsecretKey 를 알려드리겠습니다.

인증 위젯

아래 예제를 사용하여, 프로젝트에 표준 인증 위젯을 추가합니다. 여기여기에서 SCSS 템플릿을 다운로드합니다

기본 블록 너비는 400 px입니다. 높이는 인증 옵션에 따라 다릅니다.

Example of a default design Example of a custom design Example of a custom design

위젯 설치

Xsolla Login 위젯을 게임에 추가하려면 다음 단계를 따릅니다.

1 단계

<head> 태그 내 xl.min.js 활성화:

<script src="https://static.xsolla.com/xsolla-login/1.1.1/xl.min.js"></script>

2 단계

<body> 태그 내 초기화 코드 추가:

<script type="text/javascript">
XL.init({
         projectId: '40db2ea4-5p47-11e6-a3ff-005056a0e04a',
         locale: 'en_US',
         onlyWidgets: true,
         redirectUrl: '<your redirect url>',
         fields: 'email'
     });
</script>
이름 유형 설명
projectId string 앱 ID 필수.
locale string 사용자 로케일은 <language code>_<country code>와 같이 지정되어 있으며, 다음과 같습니다.
redirectUrl string 인증 후 사용자에게 전송되는 URL. JWT 토큰 내에서 전송.
onlyWidgets boolean 위젯에 대해서만 Xsolla Login을 초기화. 기본값은 'True'.
preloader string 위젯을 불러오는 동안 표시되는 프리로더. 해당 요소의 HTML 코드를 지정.
fields string 사용자가 요청하는 데이터. 허용되는 값: 'email'. 필수.

3 단계

위젯을 포함하는 DIV 요소를 추가하고 고유한 ID를 부여한 다음, 위젯 초기화 코드를 추가합니다.

<div id="xl_auth"></div>
<script type="text/javascript">
var element_id = 'xl_auth';
var options = {
    width: '200px',
    height: '200px'
};
XL.AuthWidget(element_id, options);
</script>
이름 유형 설명
element_id string 인증 컨테이너 요소의 ID. 필수.
options object 위젯 블록 설정.
options.width string 블록 너비.
options.height string 블록 높이.

Xsolla 로그인 서버측

작동 방식

Callback URL

인증 후, 사용자를 이 URL(으)로 리디렉션합니다.

인증 성공

인증에 성공하면 다음과 같은 매개변수를 사용하여 사용자를 callback URL(으)로 리디렉션합니다.

HTTP 요청

GET https://callBackUrl.php?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

매개변수 유형 설명
token string JWT. 비밀키를 사용하여 해독해독할 수 있습니다
is_linking boolean 사용자가 계정을 연결했습니다.

해독된 토큰(예제)

{
  "exp": 1471071785,
  "iss": "https://login.xsolla.com",
  "iat": 1470985385,
  "id": "11111111",
  "name": "John Carter",
  "email": "john@example.com",
  "type": "social",
  "provider": "social_network",
  "xsolla_login_access_key": "s4dGNSPKinUxkSRI8rhPhZRElHj2yusqEeqgLIgn"
}
매개변수 유형 설명
exp string 토큰 만료 날짜(Unix 타임스탬프).
iss string JWT 발급자.
iat string 생성 날짜(Unix 타임스탬프).
id string 사용자 ID.
name string 사용자의 전체 이름.
email string 사용자 이메일.
type string 인증 유형. "proxy"(프록시를 통한 인증) 또는 "social"(소셜 네트워크를 통한 로그인) 가능.
provider string 소셜 네트워크 이름. 다음 중 하나 가능: "vk," "facebook," "twitter," "steam," "baidu," "naver," "qq," "github," "microsoft," "linkedin," "google".
xsolla_login_access_key string 사용자 대신 메소드를 호출하기 위한 액세스 키.

인증 실패

인증에 실패하면 다음과 같은 매개변수를 사용하여 사용자를 콜백 URL(으)로 리디렉션합니다.

HTTP 요청

GET https://callBackUrl.php?error=003-002&error_description=User+not+found&redirect_url=https://site.com/fail_url

매개변수 유형 설명
error string 오류 코드 그룹.
error_description string 오류 설명.
redirect_url string 프로젝트에 대한 Callback URL.

추가 API 메소드

이미 사용자가 있는 경우, 프록시를 통해 인증을 사용할 수 있습니다. 이 경우, 다음 메소드를 구현합니다.

Xsolla 로그인은 https://login.xsolla.com/https://test-login.xsolla.com/ 에서 메소드를 호출합니다

로그인/암호 확인

  • Type: POST
  • Content-type: application/json
  • Request body: {"username":"ХХХХ", "password":"ХХХХ"}
  • Success: {Ok 200}
  • Failure: {"error": {"code": "003-001", "description": "" }}

가입

  • Type: POST
  • Content-type: application/json
  • Request body: {"username":"ХХХХ", "password":"ХХХХ", "email":"ХХХХ"}
  • Success: {Ok 200}
  • Failure: {error: {code: "003-003|004", description: "" }}

암호 재설정

  • Type: POST
  • Content-type: application/json
  • Request body: {"email":"ХХХХ"}
  • Success: {Ok 200}
  • Failure: {"error": {"code": "003-002", "description": ""}}