0

我正在使用 ruby​​、sinatra 和 koala gem 为 facebook 创建一个应用程序。当我重定向到 /auth/facebook 时,它会执行所需的操作,但是它首先会重定向到带有此矩形的页面,然后转到身份验证对话框。我认为这对最终用户来说非常难看。如何删除这个奇怪的重定向? 截屏 代码:

#This function defines a get and post route with the same parameters.
def get_or_post(path, opts={}, &block)
  get(path, opts, &block)
  post(path, opts, &block)
end

get "/auth/facebook/?" do
  redirect authenticator.url_for_oauth_code(:permissions => FACEBOOK_SCOPE)
end

get_or_post '/auth/facebook/callback/?' do
  session[:access_token] = authenticator.get_access_token(params[:code])
  update_user()
  redirect '/'
end
4

1 回答 1

1

我猜你正在画布 iframe 内进行重定向?这当然会尝试在该 iframe 内显示身份验证对话框,并且身份验证对话框不希望显示在任何类型的 (i) 框架中。

因此,不要使用重定向(无法指定目标),而是使用 JavaScript 来“重定向”——让你的脚本输出一个小的 HTML 文档,它基本上只包含一行 JavaScript,它使用

top.location.href = '{auth dialog URL goes here}';

在当前浏览器窗口的顶部框架中加载新 URL 。

于 2012-08-28T11:11:04.167 回答