discourse/lib/auth/facebook_authenticator.rb

38 lines
1.2 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