인게임 사용자 인증

작동 방식

런처가 바탕화면 앱을 통해 인증된 사용자 데터를 게임으로 전송(JWT 형식의 –xsolla-login-token 매개변수로 전송)합니다. 이 매개변수를 사용하여 자동 인게임 사용자 인증을 설정할 수 있습니다.

주요 JWT 클레임

토큰은 인증 또는 이메일 주소 확인 후 기본 클레임을 포함하게 됩니다. 이러한 클레임의 존재는 사용자 데이터베이스 및 인증 호출에 의존하지 않습니다.

청구                                                  유형필수설명
expUnix Timestamp토큰 만료 날짜 및 시간입니다. 기본 만료 시간은 24시간입니다. 모든 로그인 프로젝트의 만료 시간을 변경할 수 있습니다.
issstring토큰에 서명한 서비스: https://login.xsolla.com.
iatUnix Timestamp토큰을 제공하는 날짜 및 시간입니다.
substring (UUID)엑솔라 로그인 서버에 기록된 사용자 ID.
groupsarray사용자가 속한 그룹 목록입니다. 모든 그룹은 다음 형식으로 작성됩니다.
  • id - 그룹 ID
  • name - 그룹 이름
  • is_default - 그룹이 기본값인지 아닌지를 표시(true 또는 false)
기본 그룹은 하나만 있을 수 있습니다. 처음에는 이 그룹에 모든 사용자가 포함되어 있다가 다른 그룹으로 분산됩니다.
xsolla_login_project_idstring (UUID)로그인 프로젝트 ID.
usernamestring사용자 이름.
publisher_idinteger로그인 프로젝트를 소유한 판매자의 ID입니다.
emailstring사용자 이메일 주소.
payloadstring인증을 진행하는 동안 페이로드 매개 변수에서 전달되는 추가 정보입니다.
promo_email_agreementboolean뉴스레터 수신에 동의합니다. 다음 값 중 하나가 있을 수 있습니다.
  • true. 사용자가 뉴스레터 수신에 동의한 경우.
  • false. 그 외의 경우.
기본적으로 true 값을 갖습니다.
로그인 위젯의 등록 양식에 기능을 추가하는 방법:
  • 위젯 2.0을 사용하는 경우 고객 성공 매니저에게 문의하거나 csm@xsolla.com으로 이메일을 보냅니다.
  • 이전 버전의 위젯을 사용하는 경우 초기화 코드fields 매개변수를 promo_email_agreement 값과 함께 추가합니다.
connection_informationstring사용자가 생년월일을 확인했는지 여부를 표시합니다. 확인은 okname 서비스를 통해 진행합니다.

소셜 인증

소셜 네트워크를 통한 인증 후에 토큰에 포함된 클레임입니다. 이러한 클레임의 존재는 사용자 데이터베이스에 의존하지 않습니다.

청구                                                  유형필수설명
providerstring인증에 사용되는 소셜 네트워크의 이름입니다. 가능한 값: amazon, apple, baidu, battlenet, discord, facebook, github, google, kakao, linkedin, mailru, microsoft, msn, naver, ok, paypal, psn, qq, reddit, steam, twitch, twitter, vimeo, vk, wechat, weibo, yahoo, yandex, youtube, xbox.
idstringSNS 상의 사용자 ID.
is_cross_authboolean암묵 인증 요청이 진행 중임을 표시합니다.
social_access_tokenstring인증에 사용하는 소셜 네트워크 계정 access_token 매개 변수입니다. 이 기능을 설정하려면 고객 성공 매니저에게 문의하거나 csm@xsolla.com으로 이메일을 보내주세요.
picturestring (URL)소셜 네트워크의 사용자 프로필 사진에 연결합니다.
birthdaydate (RFC 3339)소셜 네트워크의 사용자 생년월일입니다.
genderstring소셜 네트워크의 사용자 성별입니다.
namestring소셜 네트워크의 사용자 별명입니다.

사용자 절차

  1. 사용자가 런처에 로그인합니다.
  2. 런처가 엑솔라 로그인 서버로부터 사용자 정보가 포함된 인증 토큰을 수신합니다.
  3. 사용자가 런처에서 게임을 시작합니다.
  4. 게임을 시작할 때 런처가 게임 클라이언트에 다음 인수를 전달합니다.
    • --xsolla-login-token <token> - 엑솔라 로그인 서버에서 획득한 인증 토큰입니다.
    • --xsolla-locale <locale> - UI 언어입니다.

예제:

Copy
Full screen
Small screen
    game.exe --xsolla-login-token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJlbWFpbCI6InAudHVnb2x1a292QHhzb2xsYS5jb20iLCJleHAiOjE1ODU1MDYxMTMsImdyb3VwcyI6W10sImlhdCI6MTU4NDY0MjExMywiaXNzIjoiaHR0cHM6Ly9sb2dpbi54c29sbGEuY29tIiwicGFydG5lcl9kYXRhIjp7ImFkbWluIjp0cnVlfSwicGF5bG9hZCI6IiIsInByb21vX2VtYWlsX2FncmVlbWVudCI6dHJ1ZSwicHJvdmlkZXIiOiJ4c29sbGEiLCJyZWRpcmVjdF91cmwiOiIiLCJzdWIiOiIyNmYxNzI5Ni00Nzk5LTExZTgtOTBkMC00MjAxMGE4YTAwMTkiLCJ0eXBlIjoic29jaWFsIiwidXNlcm5hbWUiOiJzb21lX3VzZXJAbWFpbC5jb20iLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6Ikk2QTJrTEZPQ2JkcnUzamIxMjNyT3JmWnNkTnFpdVcxMjNpWTdKcW85OHI5b0hPbyIsInhzb2xsYV9sb2dpbl9wcm9qZWN0X2lkIjoiNDBkYjJlYTQtNWQ0Mi0xMWU2LWEzZmYtMDA1NDU2YTBlMTRhIn0.ZsTNiwY2iPp7HKqHs5g6JXzL2kv_RVuMNBlF-Tn2ccE --xsolla-locale en
    
    1. 게임 클라이언트는 획득한 사용자 토큰을 게임 서버로 전송하여 다음 중 한 가지 방법으로 사용자 데이터를 조회합니다.

    획득 방법

    1. 사용자 데이터 조회를 구현합니다.
    2. 게임에서 사용자를 자동으로 인증하는 매개변수 처리를 설정합니다.
    3. 게임 클라이언트에서 --xsolla-locale <locale> 인수에서 획득한 언어를 기반으로 인터페이스 언어를 선택하는 기능을 구현합니다.
    4. 신규 사용자 추적 및 신규 사용자의 계정 생성을 게임 서버에서 구현합니다.

    게임 서버에서 JWT 디코딩하기

    1. 관리자 페이지에서 프로젝트를 열고 로그인 섹션으로 이동합니다.
    2. 로그인 프로젝트 창에서 구성을 클릭합니다.
    3. 보안 블록으로 이동하여 JWT 서명 섹션을 선택합니다.
    4. 비밀 키 필드의 값을 복사합니다.
    5. 라이브러리를 선택한 후 본인의 애플리케이션의 서버 측에서 연결합니다.
    6. 4단계에서 복사한 값을 디코딩 함수 입력 항목에 전달합니다.
    주의
    비밀 키를 누구에게도 알려주어선 안 됩니다. 손상된 경우 업데이트해야 합니다.

    로그인 API를 사용하여 사용자 데이터 조회하기

    사용자 데이터를 조회하려면 사용자 상세 정보 가져오기 로그인 API 메소드를 호출합니다.

    사용자 등록

    신규 사용자 등록을 추적하는 방법:

    1. 관리자 페이지에서 프로젝트를 열고 로그인 섹션으로 이동합니다.
    2. 로그인 프로젝트 창에서 구성을 클릭합니다.
    3. 상단 설정 블록에서 콜백 URL을 클릭합니다.
    4. 등록 후 사용자를 리디렉션할 URL 주소를 콜백 URL 필드에 입력합니다.
    5. 게임에서 새 계정 생성을 구성합니다. 등록 후 사용자는 is_new=1 매개변수를 사용하여 콜백 URL 필드에 지정된 URL로 리디렉션됩니다.
    6. 계정 작성에 필요한 정보를 획득하려면 로그인 API 메소드를 사용합니다.

    예제:

    Copy
    Full screen
    Small screen
      https://<callbackUrl>?is_new=1&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWR
      

      UI 언어

      ExampleValueMeaning
      –xsolla-locale en“en”
      “ru”
      “cn”
      “tw”
      “fr”
      “de”
      “it”
      “pt”
      “es”
      “pl”
      “cs”
      “ko”
      “ar”
      “bg”
      “he”
      “ja”
      “tr”
      “th”
      “vi”
      “ro”
      “English”
      “Русский”
      “简体中文”
      “中国传统的”
      “Français”
      “Deutsch”
      “Italiano”
      “Português”
      “Español”
      “Polski”
      “Čeština”
      “한국어”
      “العربية”
      “Български”
      “עברית”
      “日本語”
      “Türkçe”
      “ไทย”
      “Tiếng Việt”
      “Română”
      이 기사가 도움이 되었나요?
      감사합니다!
      개선해야 할 점이 있을까요? 메시지
      유감입니다
      이 기사가 도움이 안 된 이유를 설명해 주세요. 메시지
      의견을 보내 주셔서 감사드립니다!
      메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.
      마지막 업데이트: 2024년 9월 23일

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

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