Rails 3.2.2使用Devise和Omniauth的Facebook应用程序在用户权限确认时重定向出iframe



Heroku使用Devise和Omniauth托管Rails 3.2.2应用程序。

我目前在打开应用程序时通过帖子获得facebook用户ID。如果用户存在,我会自动让他们登录,一切都很顺利。如果他们没有,我会将他们重定向到

user_omniauth_authorize_path(:facebook)

它得到"/users/auth/facebook"-和facebook的"权限请求"对话框。如果用户接受,就会调用OmniauthCallbacksController#facebook,它会让用户登录并将他们重定向到应用程序的主页。但在最后一次重定向时,他们被重定向出了Facebook iframe。

我不知道为什么这会让我离开iframe。有什么建议吗?

小更正,我不要求新用户自动进行身份验证。在被要求获得权限之前,他们必须按下一个按钮才能与网站互动。

在omniauth.rb初始化程序中,放入

OmniAuth.config.full_host = "http://apps.facebook.com/canvas_url/"

如果我没记错的话,拖尾是必要的。

这应该会让你保持在Facebook的框架内。

最新更新