Photon Oculus認証

目次

アプリケーションのセットアップ

Oculusは認証プロバイダとして簡単に追加でき、 追加はPhotonアプリケーションのダッシュボードから数秒で設定できます。

アプリケーションの「管理」ページに進み、「認証」セクションにスクロールダウンしてください。 新たな認証プロバイダをOculusに追加する場合、または既存の認証プロバイダを編集する場合には、以下の設定が必須です:

  • appid: OculusアプリケーションのIDです。
  • appsecret: Oculusアプリケーションの秘密です。

クライアントコード

Oculusはユーザーを、Oculus IDとクライアントに提供されるノンスで認証しています。 暗号法では、ノンスは1回のみ使用可能な乱数です。 詳細はこちらを参照してください。

証明書を取得

クライアントはまずOculusにログインし、ノンスを生成する必要があります。 このノンスは、そのクライアントが有効なOculusユーザーであることの証明です。

Oculus SDKはOculusのウェブサイトから取得してください。

Unityのインストラクション

Unity用のOculusプラットフォームSDKをダウンロードして、プロジェクトにインポートしてください。

エディターのメニューバーから「Oculusプラットフォーム」へ進み -> 「設定の編集」でOculus AppIDを入力してください。

以下のコードを使用してログイン済みのユーザーのOculus IDを取得し、ノンスを生成します:

using UnityEngine;
using Oculus.Platform;
using Oculus.Platform.Models;

public class OculusAuth : MonoBehaviour
{
    private string oculusId;

    private void Awake()
    {
        Core.Initialize();
    }

    private void Start()
    {
        GetLoggedInUser();
    }

    private void GetLoggedInUser()
    {
        Users.GetLoggedInUser().OnComplete(OnLoggedInUserCallback);
    }

    private void OnLoggedInUserCallback(Message<User> msg)
    {
        if (msg.IsError)
        {
            Debug.LogErrorFormat("Oculus: Error getting logged in user. Error Message: {0}",
                msg.GetError().Message);
        }
        else
        {
            oculusId = msg.Data.ID.ToString(); // do not use msg.Data.OculusID;
            GetUserProof();
        }
    }

    private void GetUserProof()
    {
        Users.GetUserProof().OnComplete(OnUserProofCallback);
    }

    private void OnUserProofCallback(Message<UserProof> msg)
    {
        if (msg.IsError)
        {
            Debug.LogErrorFormat("Oculus: Error getting user proof. Error Message: {0}",
                msg.GetError().Message);
        }
        else
        {
            string oculusNonce = msg.Data.Value;
            // Photon Authentication can be done here
        }
    }
}

認証

クライアントはOculus IDを送信し、それぞれのキー「userid」と「nonce」を使用して文字列パラメータであるノンスを生成する必要があります。

loadBalancingClient.AuthValues = new AuthenticationValues();
loadBalancingClient.AuthValues.AuthType = CustomAuthenticationType.Oculus;
loadBalancingClient.AuthValues.AddAuthParameter("userid", oculusId);
loadBalancingClient.AuthValues.AddAuthParameter("nonce", oculusNonce);
// do not set loadBalancingClient.AuthValues.Token or authentication will fail
// connect

 ドキュメントのトップへ戻る