自動トークン更新の仕組み
SDK はバックグラウンドワーカーを実行し、プレイヤーのエンティティ トークンを定期的にチェックします。トークンが まだ有効だが有効期限が近づいている (有効期限まで 1 時間以内) 場合、SDK は最初のサインイン呼び出しで指定された認証情報を使用して自動的に再認証を行います。この更新が成功すると、トークンは透過的に更新され、PFEntityHandle は引き続き有効です。ゲーム側からのアクションは必要ありません。 これらの静かなトークン更新を監視するには、PFEntityRegisterTokenRefreshedEventHandler コールバックを登録します (透過的更新 を参照)。ゲームがトークンの有効期限を処理する必要がある場合
SDK がトークンを自動的に更新 できない シナリオがあります:- トークンがすでに期限切れの場合。 自動更新はトークンがまだ有効な場合にのみ機能します。トークンが完全に期限切れになっている場合 (たとえば、長時間のサスペンド/再開サイクルの後)、SDK は自動再ログインを試みません。代わりに、TokenExpiredHandler を介してゲームに通知します。
- 元のサインイン認証情報がもはや有効でない場合。 サインイン リクエストで元々提供されたハンドルまたはトークンがもはや有効でない場合、自動更新は失敗し、TokenExpiredHandler が呼び出されます。
すべてのタイトルで PFEntityTokenExpiredEventHandler の登録を推奨します。サスペンドと再開をサポートする GDK タイトルでは 必須 です。このハンドラーがない場合、ゲームは期限切れのトークンから復旧する手段がありません。
TokenExpiredHandler の登録
PFEntityRegisterTokenExpiredEventHandler を使ってコールバックを登録し、トークンが期限切れになったときに PFAuthenticationReLoginWith*Async を使って再認証を行います。GDK: サスペンド、再開、クイック レジューム
GDK プラットフォーム (XBOX コンソールおよび GDK を搭載した Windows) では、プレイヤーが別のゲームに切り替えて、後でクイック レジュームで戻ってきた場合など、ゲームが長時間サスペンドされる可能性があります。サスペンド中にエンティティ トークンが期限切れになる場合があります。サスペンド中はコードが実行されないため、SDK の定期的なバックグラウンド更新でトークンを有効に保つことができません。再開時に何が起こるか
ゲームが再開されると、SDK は 即座に 再開状態を検出し、エンティティ トークンをチェックします。次の定期的な更新サイクルを待ちません。サスペンド中にトークンが期限切れになった場合:- SDK が期限切れのトークンを検出します。
- TokenExpiredHandler コールバックが呼び出されます。
- ゲームは新しいトークンを取得するために、ハンドラーから PFAuthenticationReLoginWith*Async を呼び出す必要があります。
再開時のトークン チェックは、ネットワーク接続が回復し次第、トリガーされます。再開後にネットワークの再初期化に時間がかかる場合、SDK は接続を待ってからトークンをチェックします。トークン チェックが失われることはありません。
