ソーシャルネットワークアクセストークンによるシームレス認証
使用するタイミング
ゲームクライアントやアプリに有効なソーシャルネットワークアクセストークンがすでにある場合は、シームレストークン認証を使用します。ブラウザによるリダイレクトの代わりに、クライアントはそのトークンを1回のリクエストでエクソーラログインの認証情報に交換します。プロトコルに応じて、レスポンスはJWT(JWTプロトコル)または認可コード付きのログインURL(OAuth 2.0プロトコル)を返します。シームレス認証は次のケースに適しています:
- ゲームクライアント内で既にソーシャルネットワークへのサインインを済ませている、ウェブショップへのゲーム内自動ログイン。
- リダイレクトによる認証が利用できない、あるいはユーザーエクスペリエンスを損なうデスクトップおよびコンソールアプリケーション。
ソーシャルネットワークアクセストークンによるシームレス認証は、次のソーシャルネットワークで利用できます:エクソーラ、Facebook、Google、LinkedIn、Twitter、Discord、Naver、Baidu、Battle.net、WeChat、QQ。
クライアントがソーシャルネットワークのアクセス権限トークンを保持していない場合(例:ユーザーがまだ認証を完了していない場合)、シームレスなシナリオは機能しません。そのような場合は、以下の方法を使用してブラウザリダイレクトのシナリオを実装してください:
シームレス認証とブラウザリダイレクトフローの比較
| ブラウザリダイレクトフロー | シームレスなトークン認証 | |
|---|---|---|
| ユーザーエクスペリエンス | ゲームがソーシャルネットワークのログインページを含むブラウザを開きます。ユーザーは認証を行い、ゲームにリダイレクトされます。 | ゲームがソーシャルネットワークのトークンを渡し、ユーザーは自動的に認証されます。ブラウザは開きません。 |
| リクエスト数 | 複数回のリクエスト。 | 1 回。 |
| ゲーム内自動ログイン | 不可 — ユーザーはブラウザに切り替える必要があります。 | 可能。 |
シームレスな認証では、エクソーラログインがクライアントがすでに保持しているソーシャルネットワークのアクセス権限トークンを受け取り、ソーシャルネットワークのAPIを介してそれを検証し、一致するユーザーを見つけるか、あるいは新規ユーザーを作成し、JWTまたはログインURLを返します。これらすべてがブラウザを介さず、単一のリクエストで実行されます。
シームレスなトークン認証
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent' }}}%%
sequenceDiagram
participant G as Game client
participant X as Xsolla Login
participant B as Social network
G->>X: Sends Auth via access token of social network call
X->>B: Validates access token
B-->>X: Confirms token validity
X-->>G: Returns JWT / Login URL
ブラウザリダイレクトフロー
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent' }}}%%
sequenceDiagram
participant G as Game client
participant X as Xsolla Login
participant B as Social network
G->>X: Sends Auth via social network call
X->>B: Redirects to login page
B->>G: Displays login form
G->>B: Submits credentials
B->>X: Returns callback with code
X-->>G: Returns JWT / Login URL
シームレスな認証のAPIコール
ソーシャルネットワーク向けのシームレスなトークン認証を実装するには、選択する認証プロトコルに応じて以下のAPIコールを使用してください:
誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。