[解決済み] Facebookを認証に利用するWebサイトのREST API
質問
私たちのウェブサイトでは のみ でログインし、認証する方法が、Facebook を使用することです (これは私が選択したわけではありません)。Facebook で初めてログインすると、アカウントが自動的に作成されます。
次に、私たちのサイトのiPhoneアプリケーションを作成し、他の人が私たちのサービスを利用できるように公開APIも作成したいと思います。
この質問は、アプリ/APIから私たちのウェブサイトを認証する方法についてで、2つの部分に分かれています。
- 認証方法として Facebook OAuth のみを使用する API から Web サイトへの REST 認証を処理する正しい方法は何ですか?
REST APIの標準的な認証方法について、いろいろと読み、調べました。私たちは、そのようなメソッドを使用することはできません HTTPS上の基本認証 のような方法は使えません。なぜなら、そのようなユーザーの認証情報はないからです。次のような この のようなものは、APIを使用するアプリケーションを認証するためだけのものであるように思えます。
現在考えられる最良の方法は、私たちのAPIの/authorizeエンドポイントを叩くと、Facebook OAuthにリダイレクトされ、その後サイトにリダイレクトして、APIのユーザーがその後のリクエストを認証するために使用できる「トークン」を提供することです。
- 私たちが作成する公式アプリケーションの場合、必ずしも同じ方法で公開 API を使用する必要はありません。その場合、私たちの Web サイトと通信し、ユーザーを認証するための最良の方法は何でしょうか?
API (公開) キーと秘密 (非公開) キーを使用して、私たちの API を使用しているサードパーティ製アプリケーションを認証する方法は理解しています (と思います)。しかし、アプリを使用しているユーザーを認証することになると、ユーザーを認証する唯一の方法が Facebook である場合、どのようにすればよいかかなり混乱してきました。
私は非常に明白な何かを見逃しているか、公開 REST API がどのように動作すべきかを完全に理解していないように感じるので、どのようなアドバイスやヘルプでも大いに感謝します。
どのように解決するのですか?
UPDATE:以下を参照してください。
私もこの質問について一生懸命考えています。まだ完全に明確ではありませんが、私が考えているルートは次のとおりです。私はREST APIを作成しています私のユーザー のみ をFacebookコネクトで認証します。
CLIENTで
- Facebook API を使用してログインし、OAUTH2 コードを取得します。
- このコードをアクセストークンに交換します。
- カスタムAPIを呼び出すたびに、FacebookユーザーIDとアクセストークンを含めるようにします。
API上で(ユーザー認証を必要とするすべてのメソッドに対して)。
- 上記のアクセストークンを使用して、/me Facebookグラフにリクエストを行います。
- 返された Facebook のユーザー ID が、上記の私の API に渡されたユーザー ID と一致することを確認します。
- アクセストークンの有効期限が切れている場合、追加で通信が必要です。
私はまだこれをテストしていません。どのように聞こえるのでしょうか?
--- 更新:2014年7月27日質問にお答えします ---。
私は上記の交換をログイン時に一度だけ使用します。どのユーザーがログインしているかを判断したら、私自身のアクセストークンを作成し、そのトークンがその時点から使用されます。つまり、新しいフローは次のようになります...
CLIENT側で
- Facebook API を使用してログインし、OAUTH2 コードを取得します。
- このコードをアクセストークンに交換します。
- アクセストークンを 私の API で、Facebook トークンをパラメータとして含む
APIについて
- アクセストークンリクエストを受信します。
- facebookアクセストークンを使って、/me Facebookグラフにリクエストを行う。
- Facebook ユーザーが存在し、私のデータベースのユーザーと一致することを確認します。
- 自分用のアクセストークンを作成し、保存してクライアントに返し、この時点から使用する。
関連
-
[解決済み] なぜ "Invalid appsecret_proof provided in the API argument" と表示されるのでしょうか?
-
[解決済み] FacebookやTwitterの新しいURLのシェバング/ハッシュバン(#!)は何のため?
-
[解決済み] RESTを理解する。動詞、エラーコード、認証
-
[解決済み] JAX-RSとJerseyでRESTトークンベースの認証を実装する方法
-
[解決済み] セキュリティで保護されたWebサービスにもアクセスするiOSアプリで、Facebook認証を行うためのデザイン
-
[解決済み] PHPでREST APIを呼び出す
-
[解決済み] 認証とセッション管理に関するSPAのベストプラクティス
-
[解決済み] FacebookアプリのOauth Redirect URIはどこに設定するのですか?
-
[解決済み] Facebookアプリにおけるアプリドメインとは?
-
[解決済み] Graph APIを使ったFacebookの'Friends.getAppUsers'
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] プラットフォームへのアクセス不可。Facebookプラットフォームの変更に伴い、アクセスが一時的に無効になっています。
-
[解決済み] facebook ピクセル。PageViewとViewContentの比較
-
[解決済み] メッセンジャーのボットです。www.facebook.com にログインし、表示される指示に従うまで、アプリにアクセスできません。指示はありませんでした。
-
[解決済み] JWTは解読できても、安全性はどうなのか?
-
[解決済み] Facebook Sharerは、私のURLを共有する際に、画像やその他のメタデータをどのように選択するのですか?
-
[解決済み】FB OpenGraph og:imageが画像を引っ張ってこない(httpsの可能性?)
-
[解決済み] Facebook Open Graphのキャッシュがクリアされない
-
[解決済み] Open Graph名前空間宣言。XMLNSを使ったHTMLか、headプレフィックスを使ったHTMLか?
-
[解決済み] FBページの情報を取得するサーバーのための長期的なFBアクセストークン
-
[解決済み] 自分が開発したFacebookアプリを削除するにはどうすればよいですか?