短縮版
ログイン後に 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_path
Facebookの認証ダイアログの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 を検索しましたが、何も見つかりませんでした。