私は多くのユーザーをサポートするアプリケーションを開発しています。問題は、クライアント/ユーザーを認証する方法がわからないことです。
私はhttp://quickblox.com/のようなアプリを構築しています。そこでユーザーに資格情報を提供し、ユーザーはそれらを使用してユーザー名とパスワードを入れて認証を取得できないNアプリケーションを構築します。
それが次のようになると仮定しましょう。(QuickBloxと同じように)
1.ユーザーが私のWebサイトでアカウントを作成します。
2.ユーザーはN個のAPIキーを作成し、資格情報を秘密にすることができます。(複数のアプリの場合)
3.ユーザーは、アプリケーション(Android、iOS、Javascriptなど)でこれらの資格情報を使用して、REST APIと通信します。
(REST APIには読み取りおよび書き込みアクセスがあります。)
私の懸念?
ユーザーは自分が作成したアプリケーションに資格情報(APIキーと秘密キー)を入れます。誰かがこれらのキーを取得して、ユーザーをまねようとするとどうなりますか?(APKを逆コンパイルするか、JavaScriptコードを直接調べます。
どこか間違ってる?
この3つのレベルのユーザーメカニズムを設計するのは混乱しています。