discourse/lib/auth/facebook_authenticator.rb

35 lines
1.0 KiB
Ruby

# frozen_string_literal: true
class Auth::FacebookAuthenticator < Auth::ManagedAuthenticator
AVATAR_SIZE ||= 480
def name
"facebook"
end
def enabled?
SiteSetting.enable_facebook_logins
end
def register_middleware(omniauth)
omniauth.provider :facebook,
setup: lambda { |env|
strategy = env["omniauth.strategy"]
strategy.options[:client_id] = SiteSetting.facebook_app_id
strategy.options[:client_secret] = SiteSetting.facebook_app_secret
strategy.options[:info_fields] = 'name,first_name,last_name,email'
strategy.options[:image_size] = { width: AVATAR_SIZE, height: AVATAR_SIZE }
strategy.options[:secure_image_url] = true
},
scope: "email"
end
# facebook doesn't return unverified email addresses so it's safe to assume
# whatever email we get from them is verified
# https://developers.facebook.com/docs/graph-api/reference/user/
def primary_email_verified?(auth_token)
true
end
end