私は完全に新しい Rails と Facebook のアプリを立ち上げ、このガイドに従って書きました。
ユーザーが作成され、認証後にリダイレクトの current_user になることもわかりますが、それは持続しません。別のコントローラー アクションを実行するとすぐに、もう一度リダイレクトされ、サインインする必要があると表示されます。
コードのいずれかが役立つと思われる場合は投稿しますが、私のコードとこの wiki ( https://github.com/plataformatec/devise/wiki/OmniAuth%3a-Overview ) で表示されるものとの唯一の違いは次のとおりです。 puts ステートメントは、フィルターとメソッドの前に配置されます。
omniauthable を使用した devise がどのように機能するかは 100% わかりませんが、そのself.find_for_facebook_oauth
メソッドでは current_user を 2 番目の引数として取り、メソッドでそれを使用しないことに気付きました。さらに、他の認証ソリューションとは異なり、devise がこれを処理することになっていると思いますが、既存のユーザーセッションをどこでもチェックしているとは思いません。
編集
私は今、信じられないほど間違っていることがあると確信していomniauthable
ます。私はちょうど私のOmniauthCallbacksController
def facebook
sign_in_and_redirect :user, User.first
end
基本的に、これは情報に関係なく最初のユーザーをログインさせるだけです。Welcomeコントローラーのページにリダイレクトされますが、そのコントローラーで他のアクションを実行しようとすると、もう一度サインインする必要があると言われます.current_userがどのように失われているのか本当にわかりません.