Engine続行するにはJavascriptを有効化してください。CIRCLE非ゲーム一連のPhoton製品と専用ライセンスオプションを思う存分お使いください。2、Boltはメンテナンスモードとなっております。2でサポートいたしますが、新機能が追加されることはありません。お客様のPUNプロジェクトおよびBoltプロジェクトが停止することはなく、将来にわたってパフォーマンス性能が落ちることはありません。FusionまたはQuantumへ切り替えていただくようよろしくお願いいたします。全てのアプリケーションは、デフォルトで匿名ユーザーの接続を許可していて、認証メカニズムはありません。Photonは、アプリケーションにカスタム認証を実装するオプションを提供しています。Photonのカスタム認証は柔軟性が高く、有名なサードパーティーの認証プロバイダーから、完全に個別のソリューションまで対応しています。GamesがホスティングするFacebook認証プロバイダーは、このページをご覧ください。弊社はGitリポジトリで認証プロバイダーの実装例を提供しています。リポジトリのフォークや、プルリクエストは自由です。GitHubでソースを確認してください。以下の図に、認証プロセスの一般的なフローを示します。Serverに渡します。Serverは、要求した認証プロバイダーを取得し、以下のいずれかのステップに進みます。認証プロバイダー設定を検出した場合は、ステップ3に進みます。認証プロバイダー設定が検出されない場合は、アプリケーションの設定に応じて、クライアントは接続を許可/拒否されます。Serverは、Connect()で渡された認証情報で、認証プロバイダーを呼び出します。認証プロバイダーがオンラインの場合、ステップ4に進みます。認証プロバイダーがオフラインの場合、該当の認証プロバイダーの設定に応じて、クライアントは接続を許可/拒否されます。Serverに結果を返します。認証結果に応じて、クライアントは正常に認証/拒否されます。CloudでFacebook認証を使用している場合、この部分はスキップしてください。クライアントサイドクライアントサイドでは、APIでカスタム認証を処理します。これは、関連するパラメーターと、対象のカスタム認証サービスを一度設定するだけです。セットアップが完了したら、接続とその後のエラー処理を行います。FreeとPUN+パッケージには、カスタム認証を使用するデモが含まれています。パッケージを新規の空のプロジェクトにインポートし、実行してください。Hub」に利用できるデモが表示されます。Demo」を参照してみましょう。Authorization」デモのスクリーンショット「DemoFriends-Scene」はユーザーログイン用の単純な入力フォームを表示しています。「GUICustomAuth.cs」でOnGUI()を確認してください。Authentication」ボタンのコードは、AuthValuesと接続を設定します。これによって、設定したサービスへのカスタム認証リクエストが自動的にトリガーされます。同じファイル内のコールバックメソッドOnCustomAuthenticationFailedに留意してください。このメソッドには、ユーザーの認証が失敗した場合の反応が実装されています。サーバーサイドWebサーバーは認証リクエストを受信したら、クエリパラメーターのチェックとバリデーションを行うべきです。認証資格情報をデータベースに存在する既存の情報と比較したりします。}のような結果が返ります。バリデーションが完了した後は、以下のような結果が返ります。}高度な機能ユーザー認証以外にも、認証プロバイダーから追加情報を返すことができます。これを行うには、クライアントと、認証の役割を担うWebサービス間に、何らかのプロトコルを確立する必要があります。簡単でシンプルな方法は「オール・オア・ナッシング」方式で、クライアントに固定数の変数を返すか、何も返さないかを選択します。一部のユースケースでは、より複雑なアプローチとして、クライアントがリクエストした内容に応じた「オンデマンド」で、データを返すWebサービスが必要になります。ここでは、クライアントからWebサービスにデータを送信する方法を説明します。データには、必須の認証資格情報に加えて、任意の追加パラメーターを含めます。追加パラメーターは、サーバーサイドで取得可能なデータの一部をリクエストし、認証レスポンスに含めて返したい時などに、特に使用されます。これにより、余分なAPIコールが抑えられ、ログインのワークフローが単純化されるため、非常に有用です。認証に使用されるデフォルトのHTTPメソッドはGETになるため、パラメーターはクエリ文字列のキーバリューペアとして送信されます。最終的なURLには、クライアントやダッシュボードから設定されたキーバリューペアを「結合」したものが含まれます。両方の場所で同じキーが使用されている場合、ダッシュボードの値のみが送信されます。ベストプラクティスとして、クライアントからは見えないセンシティブで固定のキーバリューペア(例えば、APIキー、APIバージョン)のみを、ダッシュボードで設定してください。ダッシュボードのキーバリューは、クライアントを更新することなく、オンザフライで変更できます。まれなケースとして、認証で多くのデータを必要とすることがあります。その一方、ほとんどのWebサーバーは、クエリ文字列の文字数や、URLの長さに制限があります。SDK)から明示的にAuthenticationValues.AuthPostDataの値を設定することで、HTTPメソッドをPOSTに変更できるようになっています。object>型が有効です。object>の場合、ペイロードはJSON文字列に変換され、HTTPリクエストのContent-Typeは「application/json」に設定されます。SDKのAuthenticationValuesクラスは、サポートする型にそれぞれsetterメソッドが用意されています。これは要件や制約になることがあるため、認証リクエストをWebサービスからのPOSTメソッドとして受信したいユーザーのために、POSTメソッドのオプションも提供されています。認証パラメーターの送信は、クエリ文字列またはPOSTのデータ、もしくはその両方を自由に使用できます。以下の表に、有効な組み合わせを示します。Serverで処理されるのかを覚えておく必要があります。Serverが受信する全てのHTTPレスポンスのように、Webサーバーは、ResultCodeと任意のMessageを含むJSONオブジェクトを返す必要があります。Serverが、認証時にWebサービスから受信可能なリストは、以下の通りです。UserId:この値は、認証のパラメーターや、クライアント側からのリクエストとして使用できます。Serverが受信した値は、必ずクライアントに転送されます。AuthenticationValues.UserIdが設定されていない場合は、ランダムに生成されたUserIdがクライアントに返送されます。これでクライアントのUserIdの値が上書きされた以降、その値は変更できなくなります。この値は、ResultCodeが1の場合のみ返されます。})Nickname:この値は、認証のパラメーターや、クライアント側からのリクエストとして使用できます。Webサービスから返された値で、クライアントのNicknameの値は上書きされますが、それ以降もクライアント側で変更可能です。この値は、ResultCodeが1の場合のみ返されます。})AuthCookie:セキュアデータとも呼ばれる、Webサービスで返されるJSONオブジェクトです。暗号化されたトークンに埋め込まれるため、クライアント側からアクセスすることはできません。WebhookまたはWebRPCのHTTPリクエストで、後から送信することもできます。この値は、ResultCodeが1の場合のみ返されます。})Data:クライアントに返したい全ての追加の値を含むJSONオブジェクトです。配列やオブジェクトの入れ子には対応していないことに注意してください。この値は、ResultCodeが0か1の場合のみ返されます。})ResultCodeのみが必須の戻り値で、他の変数は任意となります。以下の表に、Webサーバーで返すことができる変数を示します。2.0や2段階認証を実装するのに有用です。クライアントからのデータ読み込みレスポンスから返された値を取得する方法は、以下のコードスニペットの通りです。ServerとWebサービス間で通信するデータ型のみを説明します。Server間で通信するデータ型の詳細は、Photonのシリアライゼーションをご覧ください。ServerJavaScript/JSONの型と、C#/.Netの型との対応表は、以下の通りです。]}トラブルシューティングカスタム認証に失敗すると、以下のコールバックがトリガーされます。Serverはオーバーヘッドを避けるため、短時間だけ認証コールを一時停止します。URLを設定またはテストする時は、この「バックオフ」の時間を考慮してください。ベストプラクティス認証プロバイダーから返される結果には、判読可能なMessageを含めてください。認証が失敗したケースでは、デバッグの手間を大幅に省くことができます。固定のキーバリューペアは、クライアント側からではなくダッシュボードから設定してください。クエリ文字列のキーが重複するのを防ぐことができます。セキュリティ上の理由から、認証パラメーターで平文のパスワードを送信しないでください。ダッシュボードからクエリ文字列パラメーターを設定してください。リクエストのオリジンが確認できます。パラメーターの設定には、AuthenticationValuesのメソッドを使用し、AuthGetParametersの値を直接変更しないでください。クエリ文字列が不正な形式になるのを防ぐことができます。ユースケース例:古いクライアントバージョンをブロックカスタム認証によって、古いバージョン(または不正なバージョン)を使用するクライアントの接続を拒否し、ユーザーにアップデートを促す特定のエラーを返すことができます。そのためには、カスタム認証リクエストでバージョン情報を送信する必要があります。クエリ文字列パラメーターまたはPOSTデータ引数のどちらで送信するかは、ユーザー自身で決めることができます。クエリ文字列パラメーターを使用する例は、以下の通りです。GETPhotonNetwork.ConnectUsingSettings(version);カスタム認証のURLがhttps://example.comなら、リクエストはhttps://example.com?version={version}で送信されます。認証プロバイダーの実装で、バージョンの取得と比較を行ってください。許可しないなら、ResultCodeで任意の値(1以外)と、できればメッセージを返してください。