Web アプリケーションを作成しましたが、REST API を作成して、サード パーティの開発者がプログラムできるようにしたいと考えています。次に、いくつかの一般的な言語 (JavaScript、PHP、Ruby など) でいくつかのクライアント ライブラリを構築して、開発者が各リクエストの JSON 応答を手動で解析するのを避けることで、私のサービスを快適に使用できるようにしたいと考えています。
これまで API インフラストラクチャを構築したことがないので、次の質問があります。サード パーティの開発者によって呼び出された API メソッドの使用状況を追跡したいと考えています。各開発者は、API を使用する前に登録する必要があるため、各要求を登録済みの開発者に関連付けたい (したがって、特定の使用制限を設定するなど)。
リクエストを認証するために、開発者がすべてのアプリで使用できる一意の API キーを開発者ごとに作成することを考えました。しかし、彼が私の JavaScript ラッパーを使用することにした場合、悪意のあるユーザーがクライアント アプリ ページのソース コードを表示して、彼の API キーを取得できることに気付きました。そのため、クライアント アプリがホストされるドメインに関連付けられた、すべてのアプリケーションに対して一意の API キーを作成する方がよいと判断しました。そのため、ユーザーが他の誰かのキーを取得したとしても、最初に登録されたドメインの外では役に立ちません。しかし、私は考えました:モバイルアプリはどうですか?Web サイト以外からの呼び出しの場合はどうなりますか? ドメインがない場合、または IP アドレスが静的でない場合、ドメインを介してキーを認証するにはどうすればよいですか?
任意のヒント?
ありがとう!