我正在设置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://localhost
not 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 错误?