Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- source_paths << File.dirname(__FILE__)
- gem 'oa-oauth', :require => 'omniauth/oauth'
- initializer 'omniauth.rb', <<-FILE
- Rails.application.config.middleware.use OmniAuth::Builder do
- provider :facebook, ENV['API_KEY'], ENV['APP_SECRET']
- end
- FILE
- apply 'devise.rb'
- rvm 'rails g model authentication user_id:integer provider:string uid:string'
- route "match 'auth/:provider/callback' => 'authentications#create'"
- data = <<-FILE
- has_many :authentications
- def apply_omniauth(omniauth)
- if email.blank?
- self.email = omniauth['user_info']['email'] ||
- omniauth['extra']['user_hash']['email']
- end
- if name.blank?
- self.name = omniauth['user_info']['first_name'] + ' ' +
- omniauth['user_info']['last_name']
- end
- authentications.build(
- :provider => omniauth['provider'],
- :uid => omniauth['uid']
- )
- end
- def password_required?
- (authentications.empty? || !password.blank?) && super
- end
- FILE
- inject_into_file 'app/models/user.rb', data, :after => /attr_access.*\n/
- data = <<-FILE
- belongs_to :user
- validates_presence_of :provider, :uid
- FILE
- inject_into_class 'app/models/authentication.rb', data, 'Authentication'
- copy_file 'facebook/authentications_controller.rb',
- 'app/controllers/authentications_controller.rb'
Add Comment
Please, Sign In to add comment