2012-02-25 4 views
4

私は新しいWebプロジェクトを開始しており、APIベースにするつもりです。つまり、まずAPIを構築し、OAuthで認証してから、APIを使ってデータを扱うモバイルアプリを作成します。私はAPIを公開することにも目を向ける。OAuth APIベースのメインアプリケーションを認証する方法

ここは私の問題です。私は、メインサイトを含め、私が作ったこれらの「正式な」アプリケーションを認証する方法について、頭を悩ましています。

OAuthでは、クライアントは各ユーザーのアカウントを作成し、メインサイトにログインしているリソース所有者を介してアクセス権を求めます。メインサイトとクライアントが同じ場所にあり、ユーザーが自分のウェブサイトを使用するために2つのアカウントを作成する必要があることを意味するため、これは明らかに私のためには機能しません...

Twitterは自分のAPI twitter.comと私はこのアプローチが非常に正常になっている印象を受けるので標準的なアプローチが必要です。

何かが欠落している必要がありますが、何ですか?

答えて

5

あなたは(ログインなど)のユーザーIDのauthenticaton、およびサードパーティのアプリ(のOAuth)の承認をAPI(ビジネスロジック)を混乱されています。

twitter.comが独自のAPIを使用していることは間違いありません。しかし彼らは自分のサイトでOAuthを使用していません。あなたがtwitter.comにいるとき、彼らのAPIはクッキー認証を介して自分自身で利用できます。簡単に言えば:あなたはログインしています。

あなたがtwitter.comから移動すると、OAuthを使用する必要があります。これで、アプリケーションはユーザーのためにAPIを使用しています。

要約すると、独自のAPIを使用するには、独自のWebクライアント用にOAuthを特に必要としません。 APIを公開するには、OAuthなどの認証メカニズムが必要です。また、独自の「公式」アプリにも便利です。

自分の公式アプリとサードパーティのアプリを区別する必要はありません。とにかく技術的な観点からではありません。

+0

大丈夫、それはたくさんの意味があります。今はかなり分かりやすいようですが、スペルが必要でした。乾杯 – smix96

1

「API」の2つのバージョンをホストします。 1つは外部ドメインapi.yoursite.comにマッピングされ、すべての要求を認証するためにOAuth対応です。他の内部バージョンはあなたのサーバー、あなたの公式アプリ内でのみアクセス可能です。あなたの公式アプリのみがの最初の場所でにアクセスできるので、内部APIへのすべてのリクエストを信頼できるものと見なします。

あなたは、外部と内部のコールの両方を管理するために、同じアプリケーションを使用する場合は、あなたが

  1. に選択することができますに入ってくるIPアドレスに基づいて、外部と内部の要求を区別することは
  2. はの1を受け入れるためにあなたのAPIを実装します認証のために「VIPパス」またはOAuthトークン。外部アプリは、特定のユーザーに代わって操作を実行するためにOAuthトークンを使用します。公式アプリでは、「VIPパス」を使用して任意のユーザーに代わって操作を実行します。
+0

乾杯ですが、別々の2つのバージョンをホストする理由はなく、受け入れられた回答のように認証する2つの方法があるようです。 – smix96

関連する問題