我是一个关于 Facebook 身份验证的新手,并且遇到了重定向问题。我使用 Rails 3.2.6 实现了我的应用程序,并使用 omniauth-facebook 1.4.0 与 Facebook 集成。我网站上的“使用 Facebook 唱歌”可以正常工作,但是画布身份验证无法按预期工作。
期待:
- 用户在 Facebook 上找到我的网络应用程序并接受登录对话框以启动我的应用程序。
- 用户在 Facebook 的画布页面上被重定向到我的应用程序,而不是在 Facebook 画布 iframe 之外。
实际结果:
用户身份验证有效,但随后我的应用页面被重定向到 iframe 之外。
Facebook 应用程序设置
Facebook 应用程序设置如下。画布 URL 设置为“/auth/facebook/”以立即对用户进行身份验证。(我添加了空间以避免喜欢无效域)
带有 Facebook 登录站点 URL 的网站:http://localhost:3000/
画布网址:http://localhost:3000/auth/facebook/
全域认证.rb
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, FB_APP_ID, FB_APP_SECRET, {:image_size => 'large', :iframe => true, :client_options => {:ssl => {:ca_file => Rails.root.join('lib/assets/cacert.pem').to_s}}}
end
session_controller.rb
class SessionsController < ApplicationController def create
auth = Auth.from_omniauth(env["omniauth.auth"])
session[:user_id] = auth.id
redirect_to root_url end
def destroy
session[:user_id] = nil
redirect_to root_url end end
提前致谢!