updates oauth code to handle faulty facebook responses better

This commit is contained in:
kikito
2016-01-27 18:36:22 +01:00
parent 67303159fa
commit 4bac9e6ea1
2 changed files with 2 additions and 2 deletions

View File

@@ -52,7 +52,7 @@ class User < ActiveRecord::Base
# Get the existing user by email if the provider gives us a verified email. # Get the existing user by email if the provider gives us a verified email.
def self.first_or_initialize_for_oauth(auth) def self.first_or_initialize_for_oauth(auth)
oauth_email = auth.info.email 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.find_by(email: oauth_email) if oauth_email_confirmed
oauth_user || User.new( oauth_user || User.new(

View File

@@ -240,7 +240,7 @@ Devise.setup do |config|
# up on your models and hooks. # up on your models and hooks.
# config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo' # 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 :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 config.omniauth :google_oauth2, Rails.application.secrets.google_oauth2_key, Rails.application.secrets.google_oauth2_secret
# ==> Warden configuration # ==> Warden configuration