module Authentication # These are meant to be called from the specific providers module Paths # Returns the authentication path for the given provider def self.authentication_path(provider_name, params = {}) Rails.application.routes.url_helpers.public_send( "user_#{provider_name}_omniauth_authorize_path", params ) end # Returns the sign in URL for the given provider def self.sign_in_path(provider_name, params = {}) url_helpers = Rails.application.routes.url_helpers callback_url_helper = "user_#{provider_name}_omniauth_callback_path" mandatory_params = { callback_url: URL.url(url_helpers.public_send(callback_url_helper)) } authentication_path(provider_name, params.merge(mandatory_params)) end end end