ユーザが成功したログトラフomniauth(Twitter、FacebookまたはOpenID)を実行した後に、レールにコメントを更新または保存します。Railsのomniauthで正常にoauthログインした後にCommentオブジェクトを保存する
- (ログインしていない)ユーザーがコメントフォームに記入します。それを投稿する。
- ユーザーは、Twitter、Facebook、OpenIDなどのサインイン方法を選択できるオムニバスページを取得します。
- ユーザーがoAuthから正常に戻ると、コメントを保存(または公開)します。
これはセッション変数を使用して動作しますが、スレッドセーフではありません。ユーザーが同じセッションで複数のコメントタブを開いている場合は破損します。
コメントを非公開の状態でデータベースに保存し、返された後にそれを切り替える必要がありますか?もしそうなら、正しいコメントをどのように切り替えるかを知る方法は?問題は上記のセッション問題と同様です。
omniauthと一緒にコメントオブジェクトを渡して、ユーザーが成功したサインインから返されたときに戻ってくる方法がありますか?
または、成功したリターンの後に抽出できるハッシュ文字列を渡すことはできますか?
編集:質問を簡略化して明確にするために完全に書き換えます。
なぜセッション変数で動作しないのか説明できますか?コントローラが#createのセッション変数からコメント情報を削除した場合、他の開いているタブには影響しませんか? – monocle
セッションにコメントCを保存すると、ユーザーは同時にログインします(他のタブ)POSTコメントDログインプロシージャ(最初のタブ)から戻ると、コメントCが失われてコメントDが保存されます。 – berkes