1. ホーム
  2. facebook

[解決済み] Facebookを認証に利用するWebサイトのREST API

2023-05-30 03:32:31

質問

私たちのウェブサイトでは のみ でログインし、認証する方法が、Facebook を使用することです (これは私が選択したわけではありません)。Facebook で初めてログインすると、アカウントが自動的に作成されます。

次に、私たちのサイトのiPhoneアプリケーションを作成し、他の人が私たちのサービスを利用できるように公開APIも作成したいと思います。

この質問は、アプリ/APIから私たちのウェブサイトを認証する方法についてで、2つの部分に分かれています。

  1. 認証方法として Facebook OAuth のみを使用する API から Web サイトへの REST 認証を処理する正しい方法は何ですか?

REST APIの標準的な認証方法について、いろいろと読み、調べました。私たちは、そのようなメソッドを使用することはできません HTTPS上の基本認証 のような方法は使えません。なぜなら、そのようなユーザーの認証情報はないからです。次のような この のようなものは、APIを使用するアプリケーションを認証するためだけのものであるように思えます。

現在考えられる最良の方法は、私たちのAPIの/authorizeエンドポイントを叩くと、Facebook OAuthにリダイレクトされ、その後サイトにリダイレクトして、APIのユーザーがその後のリクエストを認証するために使用できる「トークン」を提供することです。

  1. 私たちが作成する公式アプリケーションの場合、必ずしも同じ方法で公開 API を使用する必要はありません。その場合、私たちの Web サイトと通信し、ユーザーを認証するための最良の方法は何でしょうか?

API (公開) キーと秘密 (非公開) キーを使用して、私たちの API を使用しているサードパーティ製アプリケーションを認証する方法は理解しています (と思います)。しかし、アプリを使用しているユーザーを認証することになると、ユーザーを認証する唯一の方法が Facebook である場合、どのようにすればよいかかなり混乱してきました。

私は非常に明白な何かを見逃しているか、公開 REST API がどのように動作すべきかを完全に理解していないように感じるので、どのようなアドバイスやヘルプでも大いに感謝します。

どのように解決するのですか?

UPDATE:以下を参照してください。

私もこの質問について一生懸命考えています。まだ完全に明確ではありませんが、私が考えているルートは次のとおりです。私はREST APIを作成しています私のユーザー のみ をFacebookコネクトで認証します。

CLIENTで

  1. Facebook API を使用してログインし、OAUTH2 コードを取得します。
  2. このコードをアクセストークンに交換します。
  3. カスタムAPIを呼び出すたびに、FacebookユーザーIDとアクセストークンを含めるようにします。

API上で(ユーザー認証を必要とするすべてのメソッドに対して)。

  1. 上記のアクセストークンを使用して、/me Facebookグラフにリクエストを行います。
  2. 返された Facebook のユーザー ID が、上記の私の API に渡されたユーザー ID と一致することを確認します。
  3. アクセストークンの有効期限が切れている場合、追加で通信が必要です。

私はまだこれをテストしていません。どのように聞こえるのでしょうか?

--- 更新:2014年7月27日質問にお答えします ---。

私は上記の交換をログイン時に一度だけ使用します。どのユーザーがログインしているかを判断したら、私自身のアクセストークンを作成し、そのトークンがその時点から使用されます。つまり、新しいフローは次のようになります...

CLIENT側で

  1. Facebook API を使用してログインし、OAUTH2 コードを取得します。
  2. このコードをアクセストークンに交換します。
  3. アクセストークンを 私の API で、Facebook トークンをパラメータとして含む

APIについて

  1. アクセストークンリクエストを受信します。
  2. facebookアクセストークンを使って、/me Facebookグラフにリクエストを行う。
  3. Facebook ユーザーが存在し、私のデータベースのユーザーと一致することを確認します。
  4. 自分用のアクセストークンを作成し、保存してクライアントに返し、この時点から使用する。