애플리케이션 런처를 통한 인증
엑솔라 런처 또는 Steam을 사용해 사용자에게 애플리케이션을 전달하는 경우, 런처의 자격 증명을 통해 사용자를 자동으로 인증할 수 있습니다.
방법
엑솔라 런처를 사용하여 여러분의 애플리케이션을 사용자에게 전달하고 업데이트할 수 있습니다. 런처는 인증 도구를 내장하고 있습니다. 사용자 이름과 암호의 재입력을 피하려면 런처를 통해 애플리케이션에서 인증하도록 설정하세요.
런처를 사용하려면 로그인을 구현해야 합니다. 다른 권한 부여 시스템을 사용하는 것은 지원되지 않습니다.
SDK는 Shop Builder API를 사용하여 스토어와 작동합니다. 런처는 자체 API를 사용하므로 SDK는 런처 스토어와의 작업을 지원하지 않습니다.
- 애플리케이션에서 런처 인증 로직을 구현합니다.
- 애플리케이션 빌드 생성을 수행하여 런처에 업로드합니다.
런처를 통해 인증용 로직 구현하기
런처를 통한 애플리케이션의 권한 부여 절차:
- 사용자가 런처에서 권한 부여를 받습니다.
- 사용자가 애플리케이션을 설치하고 실행합니다.
- 런처가 애플리케이션을 실행하고 사용자 매개 변수를 명령 줄을 통해 전달합니다. 권한 부여 토큰이
xsolla-login-token
매개 변수에서 전달됩니다. - 애플리케이션이 명령 줄 매개 변수를 처리하고 토큰을 얻습니다.
- 애플리케이션이 받은 토큰의 유효성을 검사합니다.
- 애플리케이션이 권한 부여 페이지를 표시하지 않고 자동으로 사용자에게 권한을 부여합니다.
설명된 로직을 구현하려면 AuthViaXsollaLauncher
SDK 메서드를 사용하면 됩니다.
런처를 통한 인증용 스크립트의 예시:
- C#
1using UnityEngine;
2using Xsolla.Auth;
3using Xsolla.Core;
4
5namespace Xsolla.Samples.Authorization
6{
7 public class AuthorizationViaXsollaLauncher : MonoBehaviour
8 {
9 private void Start()
10 {
11 // Start authorization via Xsolla Launcher
12 // Pass callback functions for success and error cases
13 XsollaAuth.AuthViaXsollaLauncher(OnSuccess, OnError);
14 }
15
16 private void OnSuccess()
17 {
18 Debug.Log("Authorization successful");
19 // Add actions taken in case of success
20 }
21
22 private void OnError(Error error)
23 {
24 Debug.LogError($"Authorization failed. Error: {error.errorMessage}");
25 // Add actions taken in case of error
26 }
27 }
28}
애플리케이션 빌드 만들기
- 토큰이 처리되고 있는 사용자 권한 부여 장면을 실행합니다.
- 메인 메뉴에서
File > Build settings 을 클릭한 다음Add Open Scenes 을 클릭합니다. 권한 부여 장면이 목록에 첫 번째로 추가되었는지 확인합니다. Build 를 클릭합니다.- 팝업 창에서 완료된 빌드가 위치할 디렉터리로 가는 경로를 지정합니다.
네이티브 인증을 사용하면 플레이어가 설치된 Steam 애플리케이션을 통해 여러분의 애플리케이션으로 진입할 수 있습니다.
기본 인증을 설정하는 방법:
- 관리자 페이지에서 Steam을 통한 클라이어느 인증 설정을 선택합니다.
- Unity 프로젝트를 구성합니다.
- Steamworks.NET을 초기화합니다.
- Steam을 통해 인증 로직을 구현합니다.
- Steam을 통해 인증을 확인합니다.
내 Unity 프로젝트 구성하기
- Unity 프로젝트에 Steamworks.NET 라이브러리를 설치합니다.
steam_appid.txt
파일에서 필요한 설정을 구성합니다. 이렇게 하려면:- Unity 프로젝트의 기본 폴더에 위치해 있는
steam_appid.txt
파일을 엽니다. 파일이 누락된 경우 파일을 생성합니다. - 파일에서 Steam의 애플리케이션 ID를 지정하고 변경 사항을 저장합니다. 파일의 기본값은 Steam 테스트 프로젝트의 ID인
480
입니다. - 변경 사항을 적용하려면 Unity 에디터를 다시 시작하십시오.
- Unity 프로젝트의 기본 폴더에 위치해 있는
Steamworks.NET 초기화
Steamworks.NET 라이브러리에서 메서드를 호출하기 전에 라이브러리가 초기화되었는지 확인합니다.
편의를 위해 기성 SteamManager 클래스를 사용하는 것이 좋습니다. 이 클래스가 Steamworks.NET 라이브러리 초기화를 처리합니다. 애플리케이션이 닫히면 SteamAPI.Shutdown()
이 자동으로 호출하고 초기화 상태를 확인할 수 있는SteamManager.Initialized
속성을 제공합니다.
Steam이 실행 중이 아니거나 Steamworks.NET 라이브러리가 초기화되지 않으면 SteamManager
가 적절히 종료되고 다음과 같이 상태를 안전하게 확인할 수 있는 방법이 제공됩니다.
- C#
1if (!SteamManager.Initialized)
2{
3 Debug.LogWarning("Steam is not initialized. Working with the API is not possible.");
4 return;
5}
별도의 게임 오브젝트의 컴포넌트로 게임의 초기 씬에 SteamManager
클래스를 추가합니다. 이 클래스는 싱글톤으로 존재해야 하며 여러 가지 씬에 걸쳐 지속되어야 합니다.
Steam을 통해 인증용 로직 구현하기
인증을 시작하려면 SilentAuth
SDK 메서드를 사용하고 다음 매개 변수를 전달합니다.
providerName
- 애플리케이션의 퍼블리싱 플랫폼입니다.steam
을 값으로 전달합니다.appId
- Steam에서 애플리케이션 ID입니다. 이 값은steam_appid.txt
파일에 지정된 값과 일치해야 합니다.sessionTicket
- Steam 세션 티켓입니다. 이를 구하려면SteamUtils.GetSteamSessionTicket()
메서드를 호출합니다.onSuccess
- 성공한 사용자 인증 콜백입니다.onError
- 오류 콜백입니다.
Steam을 통한 인증용 스크립트의 예시:
- C#
1using UnityEngine;
2using Xsolla.Auth;
3using Xsolla.Core;
4
5namespace Xsolla.Samples.Steam
6{
7 public class SteamNativeAuthorization : MonoBehaviour
8 {
9 private void Start()
10 {
11 // Ensure that the Steamworks API is initialized !!!
12
13 // Get the steam session ticket from `SteamUtils` class
14 var steamSessionTicket = SteamUtils.GetSteamSessionTicket();
15
16 // Start silent authentication
17 // Pass `steam` as `providerName` parameter
18 // Pass your `Steam App ID` as `appId` parameter. We use `480` as an example
19 // Pass `steamSessionTicket` variable as the `sessionTicket` parameter
20 // Pass callback functions for success and error cases
21 XsollaAuth.SilentAuth("steam", "480", steamSessionTicket, OnSuccess, OnError);
22 }
23
24 private void OnSuccess()
25 {
26 Debug.Log("Authorization successful");
27
28 // Add actions taken in case of success
29 }
30
31 private void OnError(Error error)
32 {
33 Debug.LogError($"Authorization failed. Error: {error.errorMessage}");
34
35 // Add actions taken in case of error
36 }
37 }
38}
Steam을 통한 인증 확인
- Steam을 시작하고 로그인합니다. 그렇지 않으면
Requested steam session ticket is null. Please check your Steam settings
오류와 함께 콜백 함수가 호출됩니다. - 독립 실행형 플랫폼용 Unity 프로젝트 빌드를 생성하고 Unity 에디터에서 실행하거나 씬을 시작하세요. 모든 것이 올바르게 작동하면 애플리케이션에 자동 로그인됩니다.
오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.