私はhttps://github.com/plataformatec/devise/wiki/OmniAuth:-Overviewを使用して Facebook 認証を機能させてきました。指示されたことはすべて実行しましたが、まだ機能しません。最初に Cookie オーバーフロー エラーが発生したので、グーグルで調べた後、以下のように omniauth_callbacks_controller.rb に except('extra') を追加しました
session["devise.facebook_data"] = request.env["omniauth.auth"].except('extra')
これでエラーは解消されましたが、それでもユーザーはログインしません。実際、ユーザーが作成されるとは思いません(heroku rails cで確認)。
後ろに「sign_up# =」が追加されたURLが返されます。何が問題なのですか?
user = User.create(name:auth.extra.raw_info.name,
provider:auth.provider,
uid:auth.uid,
email:auth.info.email,
username:auth.info.email,
password:Devise.friendly_token[0,20]
)
ユーザーモデルで使用しているため、「ユーザー名」を追加しましたが、編集/追加する必要がある可能性があるものは他に考えられないようです。
Rails 3.1.3、Ruby 1.9.3p194 (2012-04-20 リビジョン 35410) [x86_64-darwin11.4.1]
===============クイックアップデート ===========================
そのため、ユーザーを保存したようです-データベースで確認できます。ただし、それでもユーザーはログインせず、パスワードではなくユーザー名と電子メールしか知らないため、作成されたユーザーでログインできません。要するに、私は Facebook に情報を送ってもらい、それをデータベースに保存することはできましたが、ログイン画面にリダイレクトすることはできませんでした。