2

短縮版

ログイン後に oauth ダイアログから facebook POST をリターン URL に戻す方法はありますか?

裏話あり

ユーザーが製品を購入できる Rails アプリケーションを開発しています。製品を購入するには、リクエストを作成してリクエストする必要があります。その Request は、製品の ID、製品の所有者の ID、および要求者の ID を保存して、3 つを相互に関連付けます。

これはすべて、もちろん投稿リクエストを通じて送信されるフォームを通じて行われます。

ここで注意が必要なことがあります。リクエストを行うには、ユーザーがログインする必要があります。Facebook からログインできます。私のアプリケーションコントローラーには、現在、ユーザーがログインしているかどうかを確認する次の方法があります。

def user_signed_in?
  unless current_user # from other method
    flash[:error] = "Please log in first."
    redirect_to root_path and return false
  end

  true
end
helper_method :user_signed_in?

root_pathFacebookの認証ダイアログのURLに変更したいです。現時点では、次のものがあります。

def user_signed_in?
  unless current_user
    raise "https://www.facebook.com/dialog/oauth/?client_id=#{ENV['FACEBOOK_APP_ID']}&redirect_uri=#{request.url}&scope=#{User::BASIC_PERMISSIONS}"
    redirect_to "https://www.facebook.com/dialog/oauth/?client_id=#{ENV['FACEBOOK_APP_ID']}&redirect_uri=#{request.url}&scope=#{User::BASIC_PERMISSIONS}" and return false
  end

  true
end

これまでのところ、これはすべて正常に機能しています。ログイン後、Facebook は正しい URL にリダイレクトします。ただし、リクエスト レコードが作成されないため、リダイレクトは POST リクエストを介して行う必要があります。Facebookはそれをサポートしていますか?理想的には、投稿パラメーターが途中で失われないようにするには? この件に関するFacebook のドキュメントを確認し、Web を検索しましたが、何も見つかりませんでした。

4

0 に答える 0