Class: HolisticAuth::Providers::GenericProvider
- Inherits:
-
Object
- Object
- HolisticAuth::Providers::GenericProvider
- Defined in:
- lib/holistic_auth/providers/generic_provider.rb
Instance Attribute Summary collapse
-
#api_key ⇒ Object
Returns the value of attribute api_key.
-
#client_id ⇒ Object
Returns the value of attribute client_id.
-
#client_secret ⇒ Object
Returns the value of attribute client_secret.
-
#oauth2_client ⇒ Object
readonly
Returns the value of attribute oauth2_client.
-
#site ⇒ Object
Returns the value of attribute site.
-
#tenant_id ⇒ Object
Returns the value of attribute tenant_id.
-
#token_url ⇒ Object
Returns the value of attribute token_url.
-
#user_info_url ⇒ Object
Returns the value of attribute user_info_url.
Instance Method Summary collapse
- #add_secrets(options = {}) ⇒ Object
- #empty? ⇒ Boolean
- #exchange(auth_code, redirect_uri) ⇒ Object
- #full_site_url ⇒ Object
-
#initialize(options = {}) ⇒ GenericProvider
constructor
A new instance of GenericProvider.
- #name(*_params) ⇒ Object
- #present? ⇒ Boolean
- #retrieve_user_info(*_params) ⇒ Object
- #secrets ⇒ Object
- #settings ⇒ Object
- #site_token_url ⇒ Object
- #to_hash ⇒ Object (also: #inspect)
Constructor Details
#initialize(options = {}) ⇒ GenericProvider
Returns a new instance of GenericProvider.
16 17 18 19 20 21 22 23 24 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 16 def initialize( = {}) @client_id = .delete :client_id @client_secret = .delete :client_secret @site = .delete(:site) || settings[:site] @token_url = .delete(:token_url) || settings[:token_url] @api_key = .delete :api_key @user_info_url = .delete(:user_info_url) || settings[:user_info_url] @additional_parameters = .delete(:additional_parameters) || settings[:additional_parameters] || {} end |
Instance Attribute Details
#api_key ⇒ Object
Returns the value of attribute api_key.
6 7 8 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 6 def api_key @api_key end |
#client_id ⇒ Object
Returns the value of attribute client_id.
6 7 8 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 6 def client_id @client_id end |
#client_secret ⇒ Object
Returns the value of attribute client_secret.
6 7 8 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 6 def client_secret @client_secret end |
#oauth2_client ⇒ Object (readonly)
Returns the value of attribute oauth2_client.
14 15 16 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 14 def oauth2_client @oauth2_client end |
#site ⇒ Object
Returns the value of attribute site.
6 7 8 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 6 def site @site end |
#tenant_id ⇒ Object
Returns the value of attribute tenant_id.
6 7 8 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 6 def tenant_id @tenant_id end |
#token_url ⇒ Object
Returns the value of attribute token_url.
6 7 8 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 6 def token_url @token_url end |
#user_info_url ⇒ Object
Returns the value of attribute user_info_url.
6 7 8 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 6 def user_info_url @user_info_url end |
Instance Method Details
#add_secrets(options = {}) ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 26 def add_secrets( = {}) @client_id = .delete :client_id if [:client_id] @client_secret = .delete :client_secret if [:client_secret] @api_key = .delete :api_key if [:api_key] @tenant_id = .delete :tenant_id if [:tenant_id] @additional_parameters.merge!(.delete(:additional_parameters)) if [:additional_parameters] end |
#empty? ⇒ Boolean
93 94 95 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 93 def empty? site.nil? || token_url.nil? end |
#exchange(auth_code, redirect_uri) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 47 def exchange(auth_code, redirect_uri) errors = [] errors << 'auth_code missing' if auth_code.blank? errors << 'redirect_uri missing' if redirect_uri.blank? errors << 'Client ID not set' if client_id.blank? errors << 'Client Secret not set' if client_secret.blank? raise "Cannot exchange auth code:\n#{errors}" if errors.present? @oauth2_client = OAuth2::Client.new(client_id, client_secret, to_hash) @oauth2_client.auth_code.get_token(auth_code, redirect_uri: redirect_uri) end |
#full_site_url ⇒ Object
68 69 70 71 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 68 def full_site_url raise "site not specified for class #{self}" unless site.present? site end |
#name(*_params) ⇒ Object
64 65 66 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 64 def name(*_params) raise 'Generic provider doesn\'t have a name' end |
#present? ⇒ Boolean
89 90 91 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 89 def present? !empty? end |
#retrieve_user_info(*_params) ⇒ Object
60 61 62 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 60 def retrieve_user_info(*_params) raise 'Not implemented' end |
#secrets ⇒ Object
38 39 40 41 42 43 44 45 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 38 def secrets sec = {} sec[:client_id] = @client_id if @client_id sec[:client_secret] = @client_secret if @client_secret sec[:api_key] = @api_key if @api_key sec end |
#settings ⇒ Object
34 35 36 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 34 def settings {} end |
#site_token_url ⇒ Object
73 74 75 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 73 def site_token_url full_site_url + token_url end |
#to_hash ⇒ Object Also known as: inspect
77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/holistic_auth/providers/generic_provider.rb', line 77 def to_hash { client_id: @client_id, client_secret: @client_secret, site: full_site_url, token_url: @token_url, api_key: @api_key, user_info_url: @user_info_url, additional_parameters: @additional_parameters, } end |