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的框架内。