我在我的网站上登录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"
}
}
有人知道如何解决这个问题吗?
答案 0 :(得分:6)
解决方案:不要那样做。你最终会遇到各种各样的问题(见this page)。选择使用www.example.com
或example.com
,并通过从不允许的版本重定向到所需的版本,在您的应用程序中强制执行它。 FWIW,谷歌选择使用www
因为它与他们的架构更兼容(实际上,它更灵活)。另一方面,StackOverflow选择不使用它(它的规范更精确)。无论哪种方式,选择一个并坚持下去。