Facebook Connectを使用してユーザー登録/ログインを有効にするレールアプリがあります(deviseとomniauthを使用)。Firesheep に関するいくつかの記事を読んだ後、アプリ全体で SSL 通信を強制することにしました。
このチュートリアルに従って、Rails 3.0.x アプリが強制的に SSL 経由でのみ通信するようにしました: http://www.simonecarletti.com/blog/2011/05/configuring-rails-3-https-ssl/
そして、locahost:3001 で webrick を使用してローカルでアプリをテストできるように、このチュートリアルに従いました: http://blog.readypulse.com/2012/01/19/setup-webrick-to-serve-ssl-https-as- well-as-non-ssl-http-traffic-side-by-side/
ここまでは順調ですね。私のアプリは、実行中に SSL 通信を強制しますlocalhost:3000
。Facebook Connect と通信しようとすると問題が発生します
Facebook 開発アプリのサイト URL を に変更するとhttps://localhost:3001
、fb グラフは次のように応答します。
{
"error": {
"message": "Invalid redirect_uri: Given URL is not allowed by the Application configuration.",
"type": "OAuthException",
"code": 191
}
}
ただし、サイトの URL を に変更するhttp:localhost:3001
と、サーバーから、ページの読み込み中に接続がリセットされたというエラーが表示されます。ブラウザーの URL バーには、読み込もうとした URL が であることが示されていlocalhost:3001/auth/facebook/callback?code=MYCODEHERE
ます。その URL の前に「https://」を追加してリロードすると、期待どおりにページが読み込まれます。
おそらく私の問題は、SSL に関する非常に基本的な知識に起因しています。しかし、SSL経由でFacebook接続のローカルテストをサポートするためにFacebook開発アプリをセットアップする方法を誰かが私に説明できれば、とても感謝していますか?