인게임 사용자 인증
작동 방식
런처가 바탕화면 앱을 통해 인증된 사용자 데터를 게임으로 전송(JWT 형식의 –xsolla-login-token
매개변수로 전송)합니다. 이 매개변수를 사용하여 자동 인게임 사용자 인증을 설정할 수 있습니다.
주요 JWT 클레임
토큰은 인증 또는 이메일 주소 확인 후 기본 클레임을 포함하게 됩니다. 이러한 클레임의 존재는 사용자 데이터베이스 및 인증 호출에 의존하지 않습니다.
청구 | 유형 | 필수 | 설명 |
---|---|---|---|
exp | Unix Timestamp | 예 | 토큰 만료 날짜 및 시간입니다. 기본 만료 시간은 24시간입니다. 모든 로그인 프로젝트의 만료 시간을 변경할 수 있습니다. |
iss | string | 예 | 토큰에 서명한 서비스: https://login.xsolla.com . |
iat | Unix Timestamp | 예 | 토큰을 제공하는 날짜 및 시간입니다. |
sub | string (UUID) | 예 | 엑솔라 로그인 서버에 기록된 사용자 ID. |
groups | array | 예 | 사용자가 속한 그룹 목록입니다. 모든 그룹은 다음 형식으로 작성됩니다.
|
xsolla_login_project_id | string (UUID) | 예 | 로그인 프로젝트 ID. |
username | string | 사용자 이름. | |
publisher_id | integer | 로그인 프로젝트를 소유한 판매자의 ID입니다. | |
email | string | 사용자 이메일 주소. | |
payload | string | 인증을 진행하는 동안 페이로드 매개 변수에서 전달되는 추가 정보입니다. | |
promo_email_agreement | boolean | 뉴스레터 수신에 동의합니다. 다음 값 중 하나가 있을 수 있습니다.
true 값을 갖습니다.로그인 위젯의 등록 양식에 기능을 추가하는 방법:
| |
connection_information | string | 사용자가 생년월일을 확인했는지 여부를 표시합니다. 확인은 okname 서비스를 통해 진행합니다. |
소셜 인증
소셜 네트워크를 통한 인증 후에 토큰에 포함된 클레임입니다. 이러한 클레임의 존재는 사용자 데이터베이스에 의존하지 않습니다.
청구 | 유형 | 필수 | 설명 |
---|---|---|---|
provider | string | 예 | 인증에 사용되는 소셜 네트워크의 이름입니다. 가능한 값: 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 . |
id | string | 예 | SNS 상의 사용자 ID. |
is_cross_auth | boolean | 암묵 인증 요청이 진행 중임을 표시합니다. | |
social_access_token | string | 인증에 사용하는 소셜 네트워크 계정 access_token 매개 변수입니다. 이 기능을 설정하려면 고객 성공 매니저에게 문의하거나 csm@xsolla.com으로 이메일을 보내주세요. | |
picture | string (URL) | 소셜 네트워크의 사용자 프로필 사진에 연결합니다. | |
birthday | date (RFC 3339) | 소셜 네트워크의 사용자 생년월일입니다. | |
gender | string | 소셜 네트워크의 사용자 성별입니다. | |
name | string | 소셜 네트워크의 사용자 별명입니다. |
사용자 절차
- 사용자가 런처에 로그인합니다.
- 런처가 엑솔라 로그인 서버로부터 사용자 정보가 포함된 인증 토큰을 수신합니다.
- 사용자가 런처에서 게임을 시작합니다.
- 게임을 시작할 때 런처가 게임 클라이언트에 다음 인수를 전달합니다.
--xsolla-login-token <token>
- 엑솔라 로그인 서버에서 획득한 인증 토큰입니다.--xsolla-locale <locale>
- UI 언어입니다.
예제:
Copy
game.exe --xsolla-login-token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJlbWFpbCI6InAudHVnb2x1a292QHhzb2xsYS5jb20iLCJleHAiOjE1ODU1MDYxMTMsImdyb3VwcyI6W10sImlhdCI6MTU4NDY0MjExMywiaXNzIjoiaHR0cHM6Ly9sb2dpbi54c29sbGEuY29tIiwicGFydG5lcl9kYXRhIjp7ImFkbWluIjp0cnVlfSwicGF5bG9hZCI6IiIsInByb21vX2VtYWlsX2FncmVlbWVudCI6dHJ1ZSwicHJvdmlkZXIiOiJ4c29sbGEiLCJyZWRpcmVjdF91cmwiOiIiLCJzdWIiOiIyNmYxNzI5Ni00Nzk5LTExZTgtOTBkMC00MjAxMGE4YTAwMTkiLCJ0eXBlIjoic29jaWFsIiwidXNlcm5hbWUiOiJzb21lX3VzZXJAbWFpbC5jb20iLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6Ikk2QTJrTEZPQ2JkcnUzamIxMjNyT3JmWnNkTnFpdVcxMjNpWTdKcW85OHI5b0hPbyIsInhzb2xsYV9sb2dpbl9wcm9qZWN0X2lkIjoiNDBkYjJlYTQtNWQ0Mi0xMWU2LWEzZmYtMDA1NDU2YTBlMTRhIn0.ZsTNiwY2iPp7HKqHs5g6JXzL2kv_RVuMNBlF-Tn2ccE --xsolla-locale en
- 게임 클라이언트는 획득한 사용자 토큰을 게임 서버로 전송하여 다음 중 한 가지 방법으로 사용자 데이터를 조회합니다.
획득 방법
- 사용자 데이터 조회를 구현합니다.
- 게임에서 사용자를 자동으로 인증하는 매개변수 처리를 설정합니다.
- 게임 클라이언트에서
--xsolla-locale <locale>
인수에서 획득한 언어를 기반으로 인터페이스 언어를 선택하는 기능을 구현합니다. - 신규 사용자 추적 및 신규 사용자의 계정 생성을 게임 서버에서 구현합니다.
게임 서버에서 JWT 디코딩하기
- 관리자 페이지에서 프로젝트를 열고 로그인 섹션으로 이동합니다.
- 로그인 프로젝트 창에서 구성을 클릭합니다.
- 보안 블록으로 이동하여 JWT 서명 섹션을 선택합니다.
- 비밀 키 필드의 값을 복사합니다.
- 라이브러리를 선택한 후 본인의 애플리케이션의 서버 측에서 연결합니다.
- 4단계에서 복사한 값을 디코딩 함수 입력 항목에 전달합니다.
주의
비밀 키를 누구에게도 알려주어선 안 됩니다. 손상된 경우 업데이트해야 합니다.
로그인 API를 사용하여 사용자 데이터 조회하기
사용자 데이터를 조회하려면 사용자 상세 정보 가져오기 로그인 API 메소드를 호출합니다.
사용자 등록
신규 사용자 등록을 추적하는 방법:
- 관리자 페이지에서 프로젝트를 열고 로그인 섹션으로 이동합니다.
- 로그인 프로젝트 창에서 구성을 클릭합니다.
- 상단 설정 블록에서 콜백 URL을 클릭합니다.
- 등록 후 사용자를 리디렉션할 URL 주소를 콜백 URL 필드에 입력합니다.
- 게임에서 새 계정 생성을 구성합니다. 등록 후 사용자는
is_new=1
매개변수를 사용하여 콜백 URL 필드에 지정된 URL로 리디렉션됩니다. - 계정 작성에 필요한 정보를 획득하려면 로그인 API 메소드를 사용합니다.
예제:
Copy
https://<callbackUrl>?is_new=1&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWR
UI 언어
Example | Value | Meaning |
---|---|---|
–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ă” |
이 기사가 도움이 되었나요?
의견을 보내 주셔서 감사드립니다!
메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.