From 4bac9e6ea1b8d1e44d9909d940920c60f643343b Mon Sep 17 00:00:00 2001 From: kikito Date: Wed, 27 Jan 2016 18:36:22 +0100 Subject: [PATCH] updates oauth code to handle faulty facebook responses better --- app/models/user.rb | 2 +- config/initializers/devise.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index a79e8acc2..e0b20ff28 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -52,7 +52,7 @@ class User < ActiveRecord::Base # Get the existing user by email if the provider gives us a verified email. def self.first_or_initialize_for_oauth(auth) oauth_email = auth.info.email - oauth_email_confirmed = auth.info.verified || auth.info.verified_email + oauth_email_confirmed = oauth_email.present? && (auth.info.verified || auth.info.verified_email) oauth_user = User.find_by(email: oauth_email) if oauth_email_confirmed oauth_user || User.new( diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 31623e4cf..2780e30b6 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -240,7 +240,7 @@ Devise.setup do |config| # up on your models and hooks. # config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo' config.omniauth :twitter, Rails.application.secrets.twitter_key, Rails.application.secrets.twitter_secret - config.omniauth :facebook, Rails.application.secrets.facebook_key, Rails.application.secrets.facebook_secret, scope: 'email', info_fields: 'email' + config.omniauth :facebook, Rails.application.secrets.facebook_key, Rails.application.secrets.facebook_secret, scope: 'email', info_fields: 'email,name,verified' config.omniauth :google_oauth2, Rails.application.secrets.google_oauth2_key, Rails.application.secrets.google_oauth2_secret # ==> Warden configuration