0

omn​​iauth をセットアップしています (Facebook プロバイダーを今のところ機能させようとしています)。

ポートで nginx を実行しているローカル コンピューターにいます80。すべてのリクエストをポートにルーティングし8080、デフォルトの Webrick サーバーを で実行します8080

私は omniauth をかなり遠くまでセットアップしましたが、今では特定の場合にのみスムーズに動作します。

ブラウザがヒットhttp://localhost/auth/facebookすると、次のようなエラーが表示されます。

URI::InvalidURIError, the scheme http does not accept registry part: app_server (or bad hostname?)

ただしhttp://localhost:8080/auth/facebook、 をクリックすると、facebook から のようなエラー メッセージが表示されますInvalid redirect_uri: Given URL is not allowed by the Application configuration."http://localhostサイトの URL がnotに設定されているため、これは理にかなっていhttp://localhost:8080ます。

サイトの URLhttp://localhost:8080

ところで、問題を引き起こしているのは localhost だけではありません。/etc/hosts を編集して試してみるとdev.example.com、同じように動作し、動作せdev.example.comず、動作しませんdev.example.com:8080

だけで動作させられないのはなぜlocalhostですか? nginx と webrick が互いに通信する方法に何か問題がありますか? それが問題になるとは想像できませんが、機能するものと機能しないものに見られる唯一の違いです. URI エラーが発生する理由はありますか?

4

1 に答える 1

1

Facebook アプリケーションのドメイン名を編集する必要があります。https://developers.facebook.com/appsに移動し、そのアプリケーションの設定を編集します。サイト ドメインとアプリ ドメインを、リダイレクトを許可する任意のドメインに設定します (例: example.dev)。

于 2012-06-11T10:11:48.213 に答える