特定の結果を達成する方法について、いくつかの技術を検討しています。私は OAuth と、使用する/使用する必要のあるテクノロジに慣れていないので、ご容赦ください。
試してみたいアイデアがあります。さまざまなモバイル デバイスで実行される追跡アプリを作成したいと考えています。それはあなたの場所をサーバーに送信し、友人があなたが長い旅のどこにいるかを知ることができます(全国など)。私の考えでは、ユーザーは友人の何人か (選択した少数) が Web サイトまたはアプリにログインして、自分がどこにいるかを確認できるようにするというものです。また、サーバーがユーザーが長時間停止したり、奇妙なことをしたりしたことを検出した場合、サーバーはそれらの友人に通知し、確認のために電話をかけることができます。(彼のガールフレンドを驚かせるために全国を9時間ドライブした同僚に触発されました).
また、チャレンジの一環として、Azure、Web API、Service Bus、ACS などの Microsoft テクノロジのみを使用したいと考えています。また、既定の ASP.NET メンバーシップ プロバイダーなどのみを使用したいので、多くのカスタム コードを記述したくありません。このプロジェクトは、私のアプリ用に提供された拡張ポイントを使用して、すべてデフォルトの Microsoft コードになります。
私のアイデアでは、Facebook や Google などの他のプロバイダーとやり取りする必要もあります。ユーザーがアプリにログインして彼の Facebook でアカウントを作成し、旅行の設定を行えるようにすることで、これを実装する方法を考えました。次に、同じ Facebook アカウントを使用して自分のデバイスからログインすると、アプリは REST API を使用して私のサービスと対話します。ユーザー名とパスワードを追跡する責任は負いたくありません (既定の ASP.NET メンバーシップとロールを使用できることを願っています)。
でも、何を見ればいいのかわからない。ユーザーが約 1 分ごとに位置情報を送信する場合、API へのリクエストが非常に大量になると想定しています。これにはキューを使用することを考えました.APIは、ワーカーによって処理されるキューにすべての場所を転送するだけです。API は、場所を送信する方法と、ユーザー設定を作成および変更する方法の両方を提供します。これについて最善の方法がわかりません。API への大量のリクエストによって、他のリクエストのパフォーマンスが低下することはありますか? ロケーションを処理する別のサーバーと、基本的なユーザー管理用に別のサーバーを用意する必要がありますか?
私がこのアプリをよく利用しているとしましょう。受信した場所ごとに Facebook サーバーに何千ものリクエストを送りたくありません。ここで OAuth は機能しませんか? ユーザーが Web インターフェイス経由でログインするときに使用できるキーをアプリでキャッシュできますか? キューに到達する前に、システムがランダム トークンなどのスパム リクエストを拒否できるようにしたいと考えています。OAuth はこのアプリの実行可能な手段ですか?
これは私にとって非常に新しいので、私は確信が持てません。サードパーティ認証を使用する大規模な REST ベースのアプリケーションを作成するにはどうすればよいですか? 場所の更新にプレーンな HTTP を使用したいと考えています (それが可能であると確信しているという理由だけで、おそらく誰かがより大きなオーバーヘッドのオプションについてコメントできるのではないでしょうか?)。全て。REST を使用する必要がありますか?
これが長くて非常に幅広い質問であることは承知していますが、私は学びたいと思っており、どんなことがあっても喜んで学びたいと思っています。時間をかけて読んで、良いことも悪いことも指摘してください。