인증

저희가 제공하는 방법 안내서에서 고급 설정에 대해 자세히 알아보세요.

OAuth 2.0 인증 설정 방법

Notice
Login 라이브러리 작업 시 이 방법 안내서를 사용합니다.

OAuth 2.0는 수명이 긴 토큰을 사용하는 대신 장기간 권한 부여(갱신 토큰)를 위해 수명이 짧은 토큰을 사용합니다. 갱신 토큰을 사용하면 사용자는 사용자 이름과 비밀번호 재입력을 하지 않고도 연장된 시간 동안 내 애플리케이션에 머물 수 있습니다. 이는 사용자 인증 데이터를 손상할 위험을 제거합니다.

권한 부여를 위한 OAuth 2.0 설정:

  • 사용자 이름 또는 이메일 및 암호를 통해
  • SNS를 통해

옵션이 활성화된 경우, 사용자 등록과 인증은 Register new userJWT auth by username and password API 호출을 호출함으로 수행됩니다. Login 라이브러리는 OAuth 2.0 권한 부여에 대하여 JWT 토큰 권한 부여와 같은 메소드를 제공합니다.

Note
본 인증을 사용하여도 여러분 애플리케이션에서의 사용자 등록은 바뀌는 부분이 없습니다.

OAuth 2.0 권한 부여 구성:

  1. 게시자 계정에서 로그인 프로젝트를 위한 OAuth 2.0 인증 설정을 합니다.
  2. 라이브러리를 초기화합니다.

게시자 계정에서 로그인 프로젝트를 위한 OAuth 2.0 인증 설정

  1. 게시자 계정으로 이동하세요.
  2. 열기로그인 블록에서 클릭해서 로그인 프로젝트로 이동하세요.
  3. 열기 및 설정을 로그인 프로젝트 블록에서 클릭합니다.
  4. 일반 설정 > 권한 부여로 이동합니다.
  5. 연결OAuth 2.0 인증 블록에서 클릭합니다.
  6. OAuth 2.0 리디렉션 URI을 지정하고 연결을 클릭합니다.
  7. 클라이언트 ID를 복사 및 저장합니다.

라이브러리 초기화

라이브러리를 초기화하려면 다음 행을 Android 프로젝트 소스 코드에 추가하고, 다음 매개 변수를 지정하세요.

  • login-project-id게시자 계정 > 로그인 설정 > 로그인 ID에서 찾을 수 있는 로그인 ID.
  • oauth2-client-id — 게시자 계정에서 OAuth 2.0을 설정할 때 받은 클라이언트 ID.

Copy
Full screen
Small screen
val loginConfig = LoginConfig.OauthBuilder()
                .setProjectId("login-project-id")
                .setOauthClientId("oauth2-client-id")
                .build()

XLogin.init(applicationContext, loginConfig)

갱신 토큰을 사용하려면 Login 라이브러리에서 다음 메소드를 구현합니다.

  • XLogin.refreshToken — 토큰을 갱신합니다.
  • XLogin.getToken — 현재 토큰을 반환합니다.
  • XLogin.isTokenExpired — 토큰이 만료된 경우 true을 반환합니다.

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

독자적인 로그인 시스템 사용 방법

Notice
다음 라이브러리 작업 시 이 방법 안내서를 사용합니다.
  • 스토어
  • 결제
  • 인벤토리

Store, Payments, Inventory 라이브러리를 자체 로그인 시스템과 통합할 수 있습니다. 이를 수행하려면 페이 스테이션 액세스 토큰을 통해 사용자 인증을 구현하세요.

자체 권한 부여 시스템 사용 시의 엑솔라 서버와의 상호 작용 흐름:

  1. 클라이언트가 귀하의 서버에 인증 요청을 전송합니다.
  2. 귀하의 서버가 사용자에게 권한을 부여하고 페이 스테이션 액세스 토큰을 받기 위해 엑솔라 서버에 요청을 전송합니다.
  3. 엑솔라가 페이 스테이션 액세스 토큰을 반환합니다.
  4. 귀하의 서버가 클라이언트에게 페이 스테이션 액세스 토큰을 전달합니다.
  5. SDK 메서드가 받은 페이 스테이션 액세스 토큰을 권한 부여 토큰으로 사용하여 인게임 스토어를 열고, 결제 작업을 수행하고, 인벤토리를 관리합니다.

페이 스테이션 액세스 토큰 받기

Note
PlayFab 또는 Firebase 권한 부여 시스템을 사용하는 경우 페이 스테이션 액세스 토큰을 엑솔라에서 미리 만들어 제공하는 BaaS용 확장을 사용하여 페이 스테이션 액세스 토큰을 얻으세요.

애플리케이션의 백 엔드에서 HTTP POST 요청을 사용하여 페이 스테이션 액세스 토큰 받기 메서드를 구현하세요.

엑솔라 API는기본 HTTP 인증을 사용합니다. 요청은 반드시 Authorization: Basic <your_authorization_basic_key> 헤더를 포함해야 하며, 여기서 조건은 <your_authorization_basic_key>가 Base64 표준에 따라 엔코딩된 merchant_id:api_key입니다. 게시자 계정에서 확인할 수 있는 매개 변숫값:

  • merchant_id용은 프로젝트 설정 > 웹훅 > 판매자 ID 섹션으로 이동합니다.
  • api_key용은 회사 설정 > API 키 섹션으로 이동합니다.

HTTP 요청:

Copy
Full screen
Small screen
POST https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token

토큰을 받으려면 전달해야 하는 요청 본문의 매개 변수:

파라미터유형설명
설정
object사용자 지정 프로젝트 설정와 관련된 객체입니다.
settings.project_id
integer게임의 엑솔라 ID. 프로젝트 이름 옆 게시자 계정에서 찾으실 수 있습니다. 필수.
사용자
object사용자에 대한 데이터가 포함된 개체입니다.
user.id
object권한 부여 시스템의 사용자 ID(개체).
user.id.value
string사용자 ID. 필수.
user.email
object사용자 이메일(개체).
user.email.value
string사용자 이메일. RFC 822 프로토콜에 따라 유효해야 합니다. 필수.
user.name
object게임유저 닉네임 데이터와 관련된 값입니다. 필수.
user.name.value
string사용자 닉네임
user.steam_id
object사용자 Steam ID(개체).
user.steam_id.value
string사용자 Steam ID. 애플리케이션이 Steam에 게시된 경우 필수입니다.
user.playfab_id
object사용자 PlayFab ID(개체)
user.playfab_id.value
string사용자 PlayFab ID. 애플리케이션이 PlayFab 서비스를 사용하여 아이템 부여를 하는 경우 필수입니다.

요청 및 응답 예시를 API 참조에서 확인하세요.

Note
요청에서는 위의 목록의 매개 변수만 사용하세요. API 호출의 다른 매개 변수(custom_parameters, purchase, 등)는 전달하지 마세요. 다른 매개 변수는 권한 부여 토큰 수신용이 아닙니다.

페이 스테이션 액세스 토큰 사용

인게임 스토어 열기, 결제하기, 인벤토리 관리에 페이 스테이션 액세스 토큰을 사용하려면 이를 XStore.init 메서드에 전달하세요.

만료 후 새 페이 스테이션 액세스 토큰을 수신하는 로직을 구현합니다. 새 토큰을 백그라운드 모드에서 수신하여 사용자가 애플리케이션에 다시 로그인하지 않아도 되게 할 것을 권장합니다.

Note
페이 스테이션 액세스 토큰을 인게임 스토어 및 인벤토리와 같이 사용하는 경우 엑솔라 API로의 마지막 호출 후 1시간이 지나면 만료됩니다. 페이 스테이션 액세스 토큰의 수명을 변경하려면, 계정 관리자에게 문의하세요.
이 기사가 도움이 되었나요?
감사합니다!
개선해야 할 점이 있을까요? 메시지
유감입니다
이 기사가 도움이 안 된 이유를 설명해 주세요. 메시지
의견을 보내 주셔서 감사드립니다!
메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.
숨기기

SNS를 통한 고유 인증 설정 방법

Notice
Login 라이브러리 작업 시 이 방법 안내서를 사용합니다.

기본 인증은 모바일 기기에서 구성된 SNS 계정을 통해 사용자가 여러분의 애플리케이션에 로그인할 수 있게 합니다.

사용자가 처음 로그인하면, SNS 애플리케이션은 실행된 다음 사용자 인증 권한을 요청합니다. 그후에는 인증이 자동으로 사용자에게 아무것도 요구하지 않고 자동으로 수행됩니다.

현재 SDK가 다음 SNS를 통한 기본 인증을 구현했습니다.

  • Google
  • Facebook
  • WeChat
  • QQ

기본 인증 구성 방법:

  1. 개발자 계정에서 SNS용 애플리케이션 구성 방법:
    1. Facebook을 통한 인증:
      1. 등록하고 새 애플리케이션을 만듭니다.
      2. Facebook 개발자 계정에서 애플리케이션 페이지를 설정합니다.
    2. Google을 통한 인증은 Google API 콘솔에서 프로젝트를 설정합니다.
    3. WeChat을 통한 인증:
      1. 등록하고 새 애플리케이션을 만듭니다.
      2. 검토용 애플리케이션을 제출합니다.
    4. QQ를 통한 인증:
      1. 등록하고 새 애플리케이션을 만듭니다.
      2. 검토용 애플리케이션을 제출합니다.

  1. 엑솔라 측에서 SNS를 통한 인증 설정 방법:
    1. Facebook 및 Google은 게시자 계정에서 SNS 연결을 설정합니다.
    2. WeChat 및 QQ는 계정 관리자에게 문의합니다.

  1. SNS를 통한 인증용 라이브러리를 설치합니다. 이를 수행하려면 애플리케이션의 build.gradle 파일을 열고 종속성 섹션에서 다음 줄을 추가합니다. 여기서 <version_number>는 라이브러리의 필수 버전입니다.
    • Facebook을 통한 인증:

Copy
Full screen
Small screen
implementation 'com.xsolla.android:login-facebook:<version_number>'

    • Google을 통한 인증:

Copy
Full screen
Small screen
implementation 'com.xsolla.android:login-google:<version_number>'

    • WeChat을 통한 인증:

Copy
Full screen
Small screen
implementation 'com.xsolla.android:login-wechat:<version_number>'

    • QQ를 통한 인증:

Copy
Full screen
Small screen
implementation 'com.xsolla.android:login-qq:<version_number>'

  1. Login 라이브러리를 다음 매개 변수를 이용해 초기화합니다.
    • facebook_id — Facebook 개발자 계정 앱 ID
    • google_id — Google API 콘솔의 웹 애플리케이션용 클라이언트 ID
    • wechat_id — WeChat 개발자 계정 AppID
    • qq_id — QQ 개발자 계정 AppID

JWT을 통한 인증 시 라이브러리 초기화 예시:

Copy
Full screen
Small screen
val loginConfig = LoginConfig.JwtBuilder()
                .setProjectId("login-project-id")
                .setSocialConfig(XLogin.SocialConfig(
                     facebookAppId = "facebook_id",
                     googleServerId = "google_id",
                     wechatAppId = "wechat_id",
                     qqAppId = "qq_id"
                ))
                .build()

XLogin.init(applicationContext, loginConfig)

OAuth 2.0을 통한 인증 시 라이브러리 초기화 예시:

Copy
Full screen
Small screen
val loginConfig = LoginConfig.OauthBuilder()
                .setProjectId("login-project-id")
                .setOauthClientId("oauth2-client-id")
                .setSocialConfig(XLogin.SocialConfig(
                     facebookAppId = "facebook_id",
                     googleServerId = "google_id",
                     wechatAppId = "wechat_id",
                     qqAppId = "qq_id"
                ))

                .build()

XLogin.init(applicationContext, loginConfig)

  1. WeChat을 통한 인증은 애플리케이션 코드를 수정합니다.
    • WXEntryActivity 클래스를 <your_package_name>.wxapi 패키지에 추가합니다. 여기서 <your_package_name>은 여러분의 애플리케이션 패키지 이름입니다.

Copy
Full screen
Small screen
package <your_package_name>.wxapi

import android.app.Activity
import android.os.Bundle
import com.tencent.mm.opensdk.modelbase.BaseReq
import com.tencent.mm.opensdk.modelbase.BaseResp
import com.tencent.mm.opensdk.openapi.IWXAPI
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler
import com.tencent.mm.opensdk.openapi.WXAPIFactory
import com.xsolla.android.login.social.LoginSocial

class WXEntryActivity : Activity(), IWXAPIEventHandler {

    private lateinit var iwxapi: IWXAPI

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        iwxapi = WXAPIFactory.createWXAPI(this, LoginSocial.wechatAppId, false)
        iwxapi.handleIntent(intent, this)
        finish()
    }

    override fun onReq(req: BaseReq?) {
    }

    override fun onResp(resp: BaseResp) {
        LoginSocial.wechatResult = resp
    }
}

    • AndroidManifest.xml 파일에 추가할 요소:

Copy
Full screen
Small screen
<activity
            android:name=".wxapi.WXEntryActivity"
            android:exported="true">

Facebook 개발자 계정의 어플리케이션 페이지 설정

  1. Facebook 개발자 계정에서 프로젝트 설정으로 이동합니다.
  2. 설정 > 기본으로 이동합니다.
  3. 플랫폼 추가를 클릭하고 Android를 선택합니다.
  4. Google Play 패키지 이름 필드에서 Android 애플리케이션 패키지 이름을 지정합니다.
  5. 기본 활동의 정규화된 클래스 이름을 클래스 이름 필드에서 지정합니다.
  6. 해시 키를 생성하고 키 해시 필드에서 이를 지정합니다.
  7. 변경 내용 저장을 클릭합니다.

추가 고유 인증 구성을 위해서는 설정 > 기본 섹션의 프로젝트 설정에 있는 앱 ID앱 시크릿 코드가 필요합니다.

Google API 콘솔에서 프로젝트 설정

  1. Google API 콘솔로 이동합니다.
  2. 새 프로젝트를 클릭합니다.
  3. 프로젝트 이름위치를 지정하고 저장을 클릭합니다.
  4. 만든 프로젝트로 이동하여 OAuth 동의 화면을 측면 메뉴에서 클릭합니다.
  5. 외부 옵션을 선택하고 생성을 클릭합니다.
  6. 필요한 매개 변수를 지정하고 저장을 클릭합니다.
  7. 측면 메뉴에서 자격 증명을 클릭합니다.
  8. Android 앱용 OAuth 2.0 클라이언트 생성 방법:

    1. 자격 증명 생성을 클릭하고 OAuth 클라이언트 ID를 선택합니다.
    2. Android애플리케이션 유형 필드에서 지정합니다.
    3. 이름을 지정합니다.
    4. Android 애플리케이션의 패키지 이름을 패키지 이름 필드에서 지정합니다.
    5. SHA-키를 가져옵니다.
    6. 전 단계 SHA-키에서 생성된 SHA-키를 SHA-1 인증 지문 필드에서 지정합니다.
    7. 생성을 클릭합니다.
    8. 확인을 클릭합니다.

  1. 웹 애플리케이션용 OAuth 2.0 클라이언트 생성 방법:
    1. 자격 증명 생성을 클릭하고 OAuth 클라이언트 ID를 선택합니다.
    2. 웹 애플리케이션애플리케이션 유형 필드에서 지정합니다.
    3. 이름을 지정합니다.
    4. URI 추가권한이 부여된 리디렉션 URI 섹션에서 클릭하고 https://login.xsolla.com/api/social/oauth2/callback URI을 지정합니다.
    5. 생성을 클릭합니다.
    6. 확인을 클릭합니다.

추가 고유 인증 구성을 위해서는 웹 어플리케이션의 클라이언트 ID 설정에서 Client IDClient Secret가 필요합니다.

엑솔라 게시자 계정에서 로그인 프로젝트용 SNS 설정

  1. 게시자 계정에서 프로젝트를 엽니다.
  2. 로그인을 사이드 메뉴에서 클릭하고 로그인 프로젝트 > 나의 로그인 프로젝트 > SNS 연결로 이동합니다.
  3. Facebook을 통해 인증 설정 방법:

    1. 편집Facebook 패널에서 클릭하고 상태를 연결 끊김으로 변경합니다.
    2. Facebook 개발자 계정의 앱 ID애플리케이션 ID 필드에서 지정합니다.
    3. Facebook 개발자 계정의 앱 암호애플리케이션 암호 필드에서 지정합니다.
    4. 연결을 클릭합니다.

  1. Google을 통한 인증 설정 방법:
    1. 편집Google 패널에서 클릭하고 상태를 연결 끊김으로 변경합니다.
    2. Google API 콘솔의 웹 애플리케이션용 클라이언트 ID애플리케이션 ID 필드에서 지정합니다.
    3. Google API 콘솔의 웹 애플리케이션용 클라이언트 암호애플리케이션 암호 필드에서 지정합니다.
    4. 연결을 클릭합니다.

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

토큰 무효화 설정 방법

Notice
Login 라이브러리 작업 시 이 방법 안내서를 사용합니다.

토큰 무효화를 통해 여러분 애플리케이션 상의 사용자 인증 데이터의 보안을 개선할 수 있습니다. 옵션을 사용하는 경우, 매번 사용자 인증 시마다 새로운 토큰이 무효화 될 기존 토큰을 대체하게 됩니다.

Note
JWT 토큰을 사용하는 인증의 무효화를 구성할 수 있습니다. OAuth 2.0 인증의 경우, 토큰 무효화는 프로토콜 자체에서 제공되며 별도로 구성할 필요는 없습니다.

Login 라이브러리 사용 시, 기존 토큰의 무효화 및 신규 토큰의 생성은 Auth by username and passwordAuth via social network API 호출을 호출하여 이루어지게 되는데, with_logout 매개변수 값이 1 인 경우에 한합니다.

Android 프로젝트에서 토큰 무효화를 사용하려면 XLogin.loginXLogin.startSocialAuthXLogin.finishSocialAuth 메소드의 withLogout = true 매개 변수를 전달해야 합니다.

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

장치 ID를 통한 사용자 인증 구현 방법

Notice
Login 라이브러리 작업 시 이 방법 안내서를 사용합니다.

장치 ID 인증은 사용자가 모바일 장치에서 등록 데이터를 입력하지 않고 애플리케이션 사용을 시작할 수 있게 합니다. 애플리케이션에 사용자가 처음으로 장치 ID를 사용하여 로그인할 때 새로운 계정이 자동으로 생성되고 사용자는 사용자 이름, 이메일 주소 또는 다른 데이터를 입력하지 않아도 됩니다.

Notice
장치 ID로 생성한 계정으로는 애플리케이션을 현재 모바일 장치에서만 사용할 수 있습니다. Android 장치를 변경하시면 애플리케이션에 대한 액세스 권한을 잃게 됩니다. 애플리케이션의 진행 상황을 저장하시려면 다른 장치의 계정을 사용하여 사용자는 소셜 네트워크를 연결하거나 사용자 이름, 이메일 주소, 암호를 입력하여 계정을 업그레이드할 수 있습니다.

장치 ID를 이용하여 하나 이상의 장치에서 백그라운드 모드로 사용자 인증을 구현할 수 있습니다. 이 기능을 사용하려면 사용자는 장치 ID를 외부 계정에 연결해야 합니다.

장치 ID는 플랫폼에 의해 생성되며 모바일 장치에 설치된 애플리케이션에서 사용할 수 있습니다. SDK는 플랫폼 API를 사용하여 플랫폼값을 가져온 다음, 이 값을 엑솔라 API를 사용하여 여러 기능을 수행하는 데에 사용합니다. Android 장치 ID는 android.provider.Settings.Secure.ANDROID_ID 상수에서 전달됩니다.

SDK는 아래 열거된 기능용 메서드를 구현합니다.

인증

SDK 메서드 이름설명
authenticateViaDeviceId
현재 장치 ID를 사용하여 애플리케이션에 사용자를 인증합니다.

계정 업그레이드

SDK 메서드 이름설명
linkEmailPassword
현재 계정에 인증용으로 사용될 수 있는 사용자 이름, 이메일 주소, 암호를 추가하세요.
현재 계정에 인증용으로 사용할 수 있는 소셜 네트워크를 연결합니다.
Notice
열거된 메서드를 사용하여 계정 생성 방법을 이용하여 생성한 계정을 업그레이드할 수 있습니다(예: 소셜 네트워크 또는 이메일 주소 및 암호).

장치 관리

SDK 메서드 이름설명
getUsersDevices
현재 사용자 계정에 연결된 장치 목록을 반환합니다.
지정한 장치를 현재 사용자 계정에 연결합니다.
지정한 장치를 현재 사용자 계정으로부터 연결 해제합니다.
이 기사가 도움이 되었나요?
감사합니다!
개선해야 할 점이 있을까요? 메시지
유감입니다
이 기사가 도움이 안 된 이유를 설명해 주세요. 메시지
의견을 보내 주셔서 감사드립니다!
메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.
숨기기
마지막 업데이트: 2021년 10월 8일

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

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