REST API を公開する LAMP スタック Web アプリケーションがあります。目標は、データベース、サービス (REST)、および複数のフロントエンド クライアント (Web サイト、Android、iPhone) の 3 つの層を持つことです。現在、これらの層はすべて同じボックスにあります。Web サイトは API を使用して、CRUD 操作のサービス ロジックを呼び出します。モバイル クライアントはまだ構築されていません。
ユーザー資格情報を保存するために、PHP bcrypt 実装を使用しています。これは設計上、遅く、CPU を集中的に使用します。すべての API 呼び出しは、API パラメーターとともにユーザー名とパスワードのペアを受け取ります。これは、すべての API 呼び出しでハッシュが計算されるため、大規模なスケーリングを妨げます。
だから、私は代替案を探してきました。OAuth 2.0 は、使用するのに費用がかからない取り消し可能なトークンを使用しますが、私が読んだ記事では、このプロトコルの主な使用例は、サードパーティが API にアクセスできるようにすることであると示唆しているようです。たとえば、モバイルクライアントは私が所有しているため、これは私のモデルには完全には適合しません。
OAuth はサードパーティでのみ使用することを意図したものですか? それとも、企業が独自の API の OAuth コンシューマとしてモバイル クライアントを追加するのが一般的ですか?
アプリ マーケットに公開する Android/iPhone アプリに共有シークレットをバンドルして、すぐに API に関連付けることができますか?