0

ルビー、シナトラ、コアラの宝石を使用して 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)フレームにも表示したくありません。

したがって、リダイレクト ( targetを指定できない場合) の代わりに、JavaScript を使用して「リダイレクト」します。基本的に JavaScript を 1 行だけ含む小さな HTML ドキュメントをスクリプトに出力させます。

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

現在のブラウザ ウィンドウのトップ フレームに新しい URL をロードします。

于 2012-08-28T11:11:04.167 に答える