Omniauth重定向仅在某些情况下工作(带端口)

时间:2012-04-14 23:51:04

标签: ruby-on-rails ruby facebook omniauth

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

我在我的本地计算机上运行端口80上的nginx。我将所有请求路由到端口8080并在8080上运行默认的webrick服务器。

我已经建立了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而不是http://localhost:8080

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

顺便说一下,导致问题的不仅仅是localhost本身。如果我编辑/ etc / hosts并尝试dev.example.com之类的内容,则其行为方式相同,dev.example.com无法正常工作且dev.example.com:8080正在运行。

为什么我不能仅使用localhost来使用它? nginx和webrick互相交谈的方式有问题吗?我无法想象那会是问题所在,但这是我看到的有效和无效的唯一区别。有关URI错误发生的任何想法吗?

1 个答案:

答案 0 :(得分:1)

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