2

Twitter のようなソーシャル ネットワークは誰もが知っているように、Facebook には独自のモバイル アプリがあります。他のサード パーティ アプリは、アプリの登録後に OAuth プロトコルのみで認証できる API を使用します。

では、Facebook、Twitter、Foursquare などは、「ユーザー名」と「パスワード」による認証を介して、独自のモバイル アプリの API にどのようにアクセスするのでしょうか? 各リクエストでユーザー名とパスワードをパラメーターとして送信するだけではないと思います。

もう 1 つの重要なポイントは、これらの公式モバイル アプリにログインするときに、OAuth プロセスに存在する [このアプリを許可する] ボタンがあり、許可を求める Web インターフェイスに出くわさないことです。彼らはデフォルトで認証されています!

調査中にXAuthに出くわしましたが、その紹介ビデオを見た後、ブラウザー上の共有ストレージのように見えました。私はそれを探しているのではなく、 Twitter で xAuthの使用に出くわしました。SSL経由でユーザー名/パスワードを1回送信することで認証し、サーバーはOAuthトークン/シークレットペアを発行します。(これは、クールではない v2 ではなく OAuth v1 のように見えます。)

私が探しているもののように見えますが、よくわかりません。xAuth が必要とする OAuth サーバーを維持する以外の方法はありますか? 私のユースケースでは、おそらくサードパーティのアプリはまったく存在しないからです。

4

1 に答える 1

2

このような場合、公式アプリは必要な認証を使用します。非公式アプリケーションにOAuthとXAuthを使用するポイントは、(1)ユーザーが取り消すことができ、(2)サードパーティにユーザー名を要求しないサードパーティへのアクセスを許可することだと思います。ユーザー自身のパスワード。実際、OAuthなどが広く採用される前は、ユーザー名とパスワードを必要とするサードパーティのアプリが非常に一般的でした。Facebookがこの種のアクセスをオフにした後で初めて、OAuthメソッドがより一般的に使用されるようになりました(彼らの場合)。

公式アプリの場合、OAuth認証トークンを取得するには、とにかくユーザー名とパスワードを入力する必要があるため、OAuthを使用する理由はありません。公式アプリの場合、これは冗長で不要になります。

公式アプリは、モバイルアプリからのログインのみを受け入れる専用の認証サーバーのセットと通信することもできます。モバイルアプリは、公式アプリとして識別する特別な追加情報、またはユーザー名に加えて他のメカニズムを提供する場合があります。認証用のパスワード。私はFacebook開発者ではないので、わかりません。しかし、私のポイントは、Facebook / Twitterにはおそらく個別のAPIパスワードベースのログインがあり、そのAPIにはWebインターフェイスおよびその他の公式ログインモードでのみアクセスできるということです。

したがって、あなたの場合、ソーシャルネットワーク(またはモバイルアクセスが可能なWebサービス)を構築している場合は、公式アプリに標準のパスワードベースのログインを使用するだけですが、そのログイン方法をすべての人が利用できるようにしないでください。APIを介したサードパーティのアクセスを許可する場合は、ユーザーのパスワードを自分の管理下にのみ保持する(サードパーティのグループに漏洩しない)という観点から、これを行うためにOAuth/XAuthサーバーをセットアップする必要があります。サイト/アプリ)。

于 2011-10-31T13:31:46.850 に答える