0

我正在设置omniauth(只是想让facebook 提供商暂时工作)。

我在我的本地计算机上运行 nginx 端口80。我将所有请求路由到端口8080并在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.". 这是有道理的,因为我的网站 url 设置为http://localhostnot http://localhost:8080

如果我将站点 url 更改为http://localhost:8080,那么事情就会开始起作用(至少在授权过程中如此之远)

顺便说一句,导致问题的不仅仅是 localhost 本身。如果我编辑 /etc/hosts 并尝试类似dev.example.com的操作,它的行为方式相同,dev.example.com但无法正常dev.example.com:8080工作。

为什么我不能让它与 just 一起工作localhost?nginx 和 webrick 之间的对话方式有问题吗?我无法想象那会是问题所在,但这是我看到的唯一区别,什么有效,什么无效。任何想法为什么会发生 URI 错误?

4

1 回答 1

1

您需要为您的 facebook 应用程序编辑域名。进入https://developers.facebook.com/apps并编辑该应用程序的设置。将站点域和应用程序域设置为您希望允许重定向到的任何域(例如 example.dev)

于 2012-06-11T10:11:48.213 回答