[Unity] Azure使えば、ソシャゲ作成も簡単!?(その2)

今回のメニューはこちら!

謎のサーバーサイドとかいうやつ

今回は、証明やら暗号をくわえて、サーバーがちょっとセキュアになりますよ。





証明やら暗号やら

ファイルを3つ用意したのでこれを入れるだけでオッケーです。
※自分の構成にあわせてネームスペースだけ変更してください。

追加するファイル

  • REST.cs
    サーバーサイドから利用する認証や暗号、RESTに関するものをまとめています。
  • ApiApp.cs
  • ApiAppREST.cs
    クライアントサイドから利用する認証や暗号、RESTに関するものをまとめています。

配置はこんな感じ


AzureApiAppにREST.csを、AzureHelperにApiApp.csとApiAppREST.csを入れます。

今回はじめての、ソースコード編集

AzureApiAppプロジェクトの Controllers/ValuesController.csを編集して、セキュアなコードにしてみましょう。

ValuesController.cs


public string Get(int id)
{



}
この関数を書き換えます。
        public HttpResponseMessage Get(string id)
        {
            //  サーバー番号
            var serverId = int.Parse(REST.GetHeaderValue("x-chigusa-serverid", this.Request.Headers));
            //  userId の復号化
            var encryptedUserId = REST.GetHeaderValue("x-chigusa-userid", this.Request.Headers);
            //var userId = REST.Decrypt(encryptedUserId);
            //  AppVersion
            var appVersion = REST.GetHeaderValue("x-chigusa-appversion", this.Request.Headers);
            //  ハッシュで検査
            string addHeader = "x-chigusa-serverid:" + serverId;
            addHeader += "\n" + "x-chigusa-userid:" + encryptedUserId;
            addHeader += "\n" + "x-chigusa-appversion:" + appVersion;
            if (!REST.CheckHash("GET", id, this.Request, addHeader))
                throw new Exception("Arg Exception");
            return Request.CreateResponse(HttpStatusCode.OK, "value");
        }
そのままコピペしてしまいましょう。
ちゃんとした手続きをとって呼び出さないと例外がでるようになっています。
成功すると、OKと"value"という文字列を返します。
この検査は、RESTでもよくある感じの手法になっているはずなので、ほかでRESTに出くわしてもイメージしやすくなるといいですね。
少し補足しておくと addHeaderは、クライアント側から追加で送っている情報になります。





Unity用のDLLを作成

Releaseビルドでソリューションをビルドして、DLLを作成しましょう。
完成した AzureHelper.dll、これをUnityにもっていきますので覚えておいてください。

最後に

今回はDLLを作成しましたが、Unityで直接コードを書いてもオッケーです。デバッグもしやすいので、慣れないうちはUnityにコードを入れておくのもいいですね。





次回は・・・

Unityからローカルサーバーにアクセス、です。





0 件のコメント :

コメントを投稿