アプリケーションランチャー経由の認証
エクソーラランチャーや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}
アプリケーションのビルドを作成する
- Unityプロジェクトに移動します。
- SDK設定が、ランチャー設定のパブリッシャーアカウント(配信 > ランチャー > 一般設定 > 認証)で指定されたログインプロジェクトIDを示していることを確認してください。
- トークンが処理されるユーザー認証シーンを実行します。
- メインメニューで
File > Build settings をクリックし、そしてAdd Open Scenes をクリックします。認可シーンがリストの最初に追加されていることを確認してください。 Build をクリックします。- ポップアップウィンドウで、完成したビルドが置かれるディレクトリへのパスを指定します。
ネイティブ認証により、プレーヤーはインストールされたSteamアプリケーションを介してアプリケーションに入ることができます。
ネイティブ認証をセットアップするには:
- パブリッシャーアカウントでサイレント認証をセットアップします。
- Unityプロジェクトを構成します。
- Steamworks.NETを初期化します。
- Steam経由での認証ロジックを実装します。
- Steam経由での認証を確認します。
Unityプロジェクトを構成する
- UnityプロジェクトにSteamworks.NETライブラリをインストールします。
- 必要な設定を
steam_appid.txt
ファイルに構成します。これを行うには:- Unityプロジェクトのルートフォルダーにある
steam_appid.txt
ファイルを開きます。ファイルが存在しない場合は、作成してください。 - SteamのアプリケーションIDをファイルに指定し、変更を保存します。ファイルのデフォルト値は
480
で、これはSteamテストプロジェクトのIDです。 - 変更を有効にするには、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エディターでシーンを開始します。すべてが正しい場合、自動的にアプリケーションにログインされます。
誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。