From 37314d439c7e7c14fce6c29f8f1888423c585b88 Mon Sep 17 00:00:00 2001 From: Prelang Builder Date: Thu, 27 Feb 2014 23:58:30 +0000 Subject: [PATCH] Defined User.find_for_facebook_oauth to find or create a User based on their Facebook Oauth token --- app/models/user.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/models/user.rb b/app/models/user.rb index af616f7..948147d 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -4,4 +4,21 @@ class User < ActiveRecord::Base devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable devise :omniauthable + + #->Prelang (user_login/devise) + def self.find_for_facebook_oauth(auth, signed_in_resource=nil) + user = User.where(:provider => auth.provider, :uid => auth.uid).first + + # The User was found in our database + return user if user + + # The User was not found and we need to create them + User.create(name: auth.extra.raw_info.name, + provider: auth.provider, + uid: auth.uid, + email: auth.info.email, + password: Devise.friendly_token[0,20]) + end + + end