質問: Kickstarter支援者に、特別アイテムをプレゼントしたいのですが Androidアプリ、(Unity3d制作)で サーバーを立ててユーザー認証をする方法ではなく、 アプリ単体でどの支援者か判別する方法はあるでしょうか? 支援者に特別アイテム用のパスワードをメールで送る などは考えたのですが、 それだとパスワードをTwitterなどでつぶやかれたり、 攻略サイトに張られたりなどされる可能性もあり スマートな方法ではないと考えます。 サーバー立てないのは、単に僕がサーバー触ったことないだけなので 他に方法がなければそのままパスワード制にするか この機会にサーバーの勉強を始めようかと思うのですが。
回答: どちらも使った事が無いので、Unity3dでどこまで作り込み可能か判りません ですので認証の手法だけですが... > > 支援者に特別アイテム用のパスワードをメールで送る > > > この部分からユーザーのメールアドレスが判明していると仮定するのであれば メールの認証を利用して本人確認する手段が有ります。 1.支援者にメールでアプリに入力するコードを配信 ・コード内容は秘密鍵で暗号化して以下のものを送る 個別の支援者のメールアドレス 特典アイテムを特定するためのコードや/認証等 2.アプリに送られたコードを入力 ・アプリ側で以下の処理を行う 受け取ったコードを公開鍵で復号化 アプリ固有のパスを新規に生成・保存(このパスは他の端末では使用不可能) 復号化したメールアドレス宛にアプリ固有のパスをアプリ内から直接送信 (送信に端末内のメーラーは使わない事) 3.受信したメール記載のパスがアプリ内保持のパスと一致するかで認証 サーバーを建てられるなら2の後半に追加の認証処理(暗号/復号化等)と サーバー側で保持したアドレスにメール送信をする事でコードの短縮化や セキュリティの向上も見込めますね。