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

Pav*_* K. 2 facebook ruby-on-rails devise omniauth

我在我的网站上登录OmniAuthable Facebook.用户登录时使用:

link_to user_omniauth_authorize_path(:facebook)
Run Code Online (Sandbox Code Playgroud)

它在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"
   }
}
Run Code Online (Sandbox Code Playgroud)

有谁知道我怎么解决这个问题?

cor*_*ard 6

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