Разработать официальную вики для omniauth с фейсбуком не работает? - PullRequest
0 голосов
/ 13 марта 2012

Я следовал за официальной вики устройства, чтобы интегрировать устройство с Facebook через omniauth.

Я могу войти в свою учетную запись Facebook, но каким-то образом я не могу сохранить дополнительные данные из обратного вызова Facebook omniauth.

Обратите внимание, что я буквально скопировал все на это руководство

Пожалуйста, посмотрите на моего текущего пользователя. Rb

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable 
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable,
         :omniauthable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me, 
                  :fb_raw

  def self.find_for_facebook_oauth(access_token, signed_in_resource=nil)
    data = access_token.extra.raw_info
    if user = User.where(:email => data.email).first
      user
    else # Create a user with a stub password. 
      User.create!(:email => data.email, :password => Devise.friendly_token[0,20]) 
    end
  end

  def self.new_with_session(params, session)
    super.tap do |user|
      if data = session["devise.facebook_data"] && \
          session["devise.facebook_data"]["extra"]["raw_info"]
        # Here you can save all the info you want including networks and education 
        user.email = data["email"]
        user.fb_raw = data['raw_info']
      end
    end
  end

end

Проблема в том, что я.new_with_session никогда не вызывается .Я поместил предложение об исключении броска прямо перед super.tab, чтобы доказать эту гипотезу.

Кто-нибудь знает работу вокруг этого?

1 Ответ

0 голосов
/ 13 марта 2012

new_with_session - это звонок на DeviseRegistrationController, поэтому он не находится на OmniauthCallbacksController, поэтому нормально, чтобы его никогда не вызывали при входе через Facebook.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...