module Aerogel::Auth
Constants
- PROVIDERS
known providers
PROVIDERS = { password: { name: "Password", gem: nil }, github: { name: "GitHub", gem: 'omniauth-github' }, facebook: { name: "Facebook", gem: 'omniauth-facebook' }, twitter: { name: "Twitter", gem: 'omniauth-twitter' }, linkedin: { name: "LinkedIn", gem: 'omniauth-linkedin-oauth2' }, vkontakte: { name: "Vkontakte", gem: 'omniauth-vkontakte' } }
Public Class Methods
enabled_providers()
click to toggle source
Returns list of enabled omniauth providers as symbols.
Example:
Aerogel::Auth.enabled_providers # => [:password, :github, :twitter]
# File lib/aerogel/users/auth.rb, line 28 def self.enabled_providers return @enabled_providers unless @enabled_providers.nil? @enabled_providers = [] providers.each do |provider, opts| # always enable :password next unless provider == :password || Aerogel.config.auth.send( :"#{provider}?" ) @enabled_providers << provider end @enabled_providers end
load_middleware( app )
click to toggle source
Loads OmniAuth
middleware with enabled providers.
# File lib/aerogel/users/auth.rb, line 51 def self.load_middleware( app ) load_provider_gems app.use OmniAuth::Builder do # puts "** configuring OmniAuth" provider :password, model: User Aerogel::Auth.enabled_providers.each do |provider_key| next if provider_key == :password provider_config = app.config.auth.send(provider_key) provider provider_key, provider_config.api_key!, provider_config.api_secret! # puts "** configuring #{provider_key}: #{provider_config.api_key!}" end on_failure {|env| OmniAuth::FailureEndpointEx.new(env).redirect_to_failure } end end
load_provider_gems()
click to toggle source
Loads gems for enabled providers.
# File lib/aerogel/users/auth.rb, line 41 def self.load_provider_gems enabled_providers.each do |provider_key| gem_name = providers[provider_key][:gem_name] # puts "** requiring #{provider_key}: #{gem_name}" require gem_name if gem_name end end
providers()
click to toggle source
Returns hash of registered omniauth providers.
# File lib/aerogel/users/auth.rb, line 18 def self.providers return @providers unless @providers.nil? @providers = Aerogel.config.auth.providers.to_hash end