Skip to content

Instantly share code, notes, and snippets.

@Nursultan91
Created January 16, 2018 15:03
Show Gist options
  • Save Nursultan91/72154abf382ae7b5043b84caeff74864 to your computer and use it in GitHub Desktop.
Save Nursultan91/72154abf382ae7b5043b84caeff74864 to your computer and use it in GitHub Desktop.
авторизация через соцсети
def self.find_for_google_oauth2(access_token, signed_in_resourse=nil)
data = access_token.info
user = User.where(:provider => access_token.provider, :uid => access_token.uid).first
if user
return user
else
registered_user = User.where(:email => access_token.email).first
if registered_user
return registered_user
else
user = User.create(
name: data["name"],
city: data["city"],
iin: data["iin"],
provider: access_token.provider,
email: data["email"],
uid: access_token.uid,
image: data["image"],
password: Devise.friendly_token[0,20]
)
end
end
end
def self.find_for_facebook_oauth(access_token, signed_in_resourse=nil)
data = access_token.info
user = User.where(:provider => access_token.provider, :uid => access_token.uid).first
if user
return user
else
registered_user = User.where(:email => data.email).first
if registered_user
return registered_user
else
user = User.create(
name: access_token.extra.raw_info.name,
city: access_token.extra.raw_info.city,
iin: access_token.extra.raw_info.iin,
provider: access_token.provider,
email: data.email,
uid: access_token.uid,
image: data.image,
password: Devise.friendly_token[0,20]
)
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment