如果没有使用www前缀访问域,Facebook登录将返回错误消息

时间:2011-11-07 21:20:08

标签: ruby-on-rails facebook devise omniauth

我在我的网站上登录OmniAuthable Facebook。用户使用以下帐号登录:

link_to user_omniauth_authorize_path(:facebook)

它在developers.facebook.com的app config中定义。

如果我通过www.example.com访问该网站,一切正常,我可以登录。

如果我在没有“www”子域(即example.com)的情况下访问它,我会收到以下回复:

{
   "error": {
      "message": "Invalid redirect_uri: Given URL is not allowed by the Application configuration.",
      "type": "OAuthException"
   }
}

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:6)

解决方案:不要那样做。你最终会遇到各种各样的问题(见this page)。选择使用www.example.comexample.com,并通过从不允许的版本重定向到所需的版本,在您的应用程序中强制执行它。 FWIW,谷歌选择使用www因为它与他们的架构更兼容(实际上,它更灵活)。另一方面,StackOverflow选择不使用它(它的规范更精确)。无论哪种方式,选择一个并坚持下去。