http://example.com:4567にSinatra REST APIを持つアプリがあるとします。私のアプリでは、フロントエンドで作業するデザイナーがいます。リモートプロキシを使用してFacebookの認証を行う方法
127.0.0.1 local.example.com
と彼のhttpd-vhosts.confを次のように:
はそうProxyPass /api http://example.com:4567
ProxyPassReverse /api http://example.com:4567
そのAPIコールはにプロキシされているローカルのバックエンドで彼をセットアップするのではなく、次のように私は彼のhostsファイルを編集しますリモートホスト。次に、フロントエンドリポジトリがあるローカルディレクトリにマップするApacheのlocal.example.comの仮想ホストを作成します。これにより私は彼にローカルのフロントエンドを持つリモートバックエンドを与えることができます。
サブドメインの理由は、認証用の制限的なドメインポリシーを持つFacebook認証を行うためです。我々は成功したFacebookの認証ユーザーとバックアプリにリダイレクトされ得ることができますが、アクセスを取得しようとすると、トークンメッセージと400応答を取得する場合:私はそれがに設定されていますようclient_idのが正しく設定されていると信じて
{"error"=>{"message"=>"Missing client_id parameter.", "type"=>"OAuthException", "code"=>101}}
をラック:oauth:クライアントオブジェクトは正しくあり、フローは同一であり、ドメインが異なる場合にのみ失敗します。私が持っている唯一の考えは、facebookは、example.comからアクセストークンが要求されている間にlocal.example.comからのユーザー認証が気に入らないかもしれないが、私の理解はfacebookがすべてのサブドメインで認証されることです。私はまた、私のアプリケーションでlocal.example.comをホワイトリストに入れました。
これを達成するための洞察またはアドバイスはありますか?前もって感謝します。